{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "85f88996-cf08-4a53-b102-247e38229134",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-12T06:07:33.357458Z",
     "iopub.status.busy": "2024-11-12T06:07:33.356946Z",
     "iopub.status.idle": "2024-11-12T06:07:36.163007Z",
     "msg_id": "5e2e7b94-1823-4a12-87b0-a0fea4c194f7",
     "shell.execute_reply": "2024-11-12T06:07:36.162246Z",
     "shell.execute_reply.started": "2024-11-12T06:07:33.357427Z"
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd \n",
    "import numpy as np \n",
    "import os \n",
    "import gc\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.ensemble import GradientBoostingClassifier\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import roc_curve\n",
    "from sklearn.model_selection import KFold, StratifiedKFold\n",
    "from sklearn.feature_selection import RFECV\n",
    "\n",
    "import lightgbm as lgb \n",
    "from lightgbm import log_evaluation, early_stopping\n",
    "import xgboost as xgb \n",
    "import copy \n",
    "\n",
    "from sklearn.ensemble import IsolationForest\n",
    "\n",
    "import matplotlib.pyplot as plt \n",
    "from matplotlib import rcParams\n",
    "rcParams[\"font.family\"] = \"SimHei\"\n",
    "\n",
    "import seaborn as sns\n",
    "\n",
    "from itertools import combinations \n",
    "import pickle\n",
    "# from bayes_opt import BayesianOptimization\n",
    "# import optuna\n",
    "from functools import partial\n",
    "\n",
    "import networkx as nx \n",
    "from itertools import combinations\n",
    "from functools import partial\n",
    "from sklearn.metrics import roc_auc_score\n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "from sklearn.preprocessing import OneHotEncoder\n",
    "from sklearn.preprocessing import MinMaxScaler,StandardScaler\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.linear_model import LogisticRegressionCV\n",
    "from sklearn.metrics import confusion_matrix,accuracy_score,classification_report,roc_auc_score,log_loss\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "import sklearn.metrics as metrics\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn.metrics import roc_curve\n",
    "from sklearn.model_selection import KFold\n",
    "from sklearn.feature_selection import RFECV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "import sklearn.ensemble as ensemble\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn import svm\n",
    "from sklearn.feature_selection import SelectFromModel\n",
    "\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.ensemble import GradientBoostingClassifier\n",
    "from sklearn.metrics import f1_score\n",
    "\n",
    "import xgboost as xgb\n",
    "from xgboost import XGBClassifier\n",
    "\n",
    "# import lightgbm as lgb\n",
    "# from lightgbm import LGBMClassifier\n",
    "# from lightgbm import log_evaluation, early_stopping\n",
    "\n",
    "import catboost as cbt\n",
    "from catboost import CatBoostClassifier\n",
    "\n",
    "from scipy import stats,integrate\n",
    "from scipy.stats import ks_2samp\n",
    "#from scipy.stats import kssamp\n",
    "from scipy.stats import pearsonr\n",
    "from sklearn.model_selection import RandomizedSearchCV\n",
    "from scipy.stats import uniform\n",
    "from scipy.stats import kstest\n",
    "\n",
    "import toad\n",
    "\n",
    "pd.set_option('display.max_columns', 50)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c0f923bd-1bec-46b2-8824-62214d871543",
   "metadata": {},
   "source": [
    "# 工具函数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "aec48db7-13b0-42ab-bc57-4b98a0db7741",
   "metadata": {},
   "source": [
    "## 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e3b8f266-593c-413e-8267-9960e7d5eb96",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-12T06:07:37.147368Z",
     "iopub.status.busy": "2024-11-12T06:07:37.146542Z",
     "iopub.status.idle": "2024-11-12T06:07:37.158473Z",
     "msg_id": "ff6b2f66-9098-4b4a-896d-101eb568a0f3",
     "shell.execute_reply": "2024-11-12T06:07:37.157689Z",
     "shell.execute_reply.started": "2024-11-12T06:07:37.147333Z"
    }
   },
   "outputs": [],
   "source": [
    "def get_data(file_name, num_rows=None):\n",
    "    train_path = \"/home/mole/work/contest/train\"\n",
    "    test_path = \"/home/mole/work/contest/B\"\n",
    "    df_train = pd.read_csv(os.path.join(train_path, file_name + \"_T.csv\"), nrows=num_rows)\n",
    "    df_test = pd.read_csv(os.path.join(test_path, file_name + \"_B.csv\"), nrows=num_rows)\n",
    "    df_train[\"is_train\"] = 1\n",
    "    df_test[\"is_train\"] = 0\n",
    "    \n",
    "    df = pd.concat(objs=[df_train, df_test],axis=0)\n",
    "    df.rename(mapper = {'DATA_DAT': '数据日期', 'CUST_NO': '客户编号', 'OPTO': '经营期限至', 'OPFROM': '经营期限自', 'ENTSTATUS': '经营状态', 'REGCAP': '注册资本', 'ESDATE': '成立日期', 'FRNAME': '法定代表人/负责人/执行事务合伙人', 'ENTTYPE_CD': '企业（机构）类型编码', 'REGPROVIN_CD': '所在省份编码', 'INDS_CD': '国民经济行业代码', 'ALTDATE': '变更日期', 'ALTITEM': '变更事项', 'PERNAME': '人员姓名', 'POSITIONCODE': '职位代码', 'PERSONAMOUNT': '人员总数量', 'WEBTYPE': '网站（网店）类型', 'WEBSITNAME': '网站（网店）名称', 'DOMAIN': '网站（网店）地址', 'ANCHEDATE': '年报日期', 'ANCHEYEAR': '年报年份', 'EXECMONEY': '执行标的', 'REGDATECLEAN': '立案时间', 'COURTNAME': '执行法院', 'CASECODE': '案号', 'PUBLISHDATECLEAN': '发布时间', 'GISTID': '执行依据文号', 'PERFORMANCE': '被执行人履行情况', 'REGDATE': '立案时间', 'FINALDATE': '终本日期', 'UNPERFMONEY': '未履行金额', 'CONDATE': '出资日期', 'SUBCONAM': '认缴出资额（万元）', 'FUNDEDRATIO': '出资比例', 'INVTYPE': '股东类型', 'CONFORM': '出资方式', 'SH_CUST_NO': '股东客户编号', 'BTD_BEGINDATE': '所属日期起', 'BTD_ENDDATE': '所属日期止', 'BTD_COLLECTCODE': '征收项目代码', 'BTD_DECLARDATE': '申报日期', 'BTD_DECLARTERM': '申报期限', 'BTD_TOTALSALE': '全部销售收入', 'BTD_TAXABLESALE': '应税销售收入', 'BTD_TAXPAYABLE': '应纳税额', 'BTD_DEDUCTAMOUNT': '减免税额', 'TR_DAT': '交易日期', 'TR_CD': '交易代码', 'CHANL_CD': '渠道代码', 'ABS_INFO': '摘要信息', 'CPT_TYP_CD': '交易对手类型代码', 'ARG_ACCT_BAL': '合约账户余额', 'ACTG_DIRET_CD': '记账方向代码', 'TRS_CSH_IND': '现转标识', 'CSH_EX_IND': '钞汇标识', 'RMB_TR_AMT': '折人民币交易金额', 'CPT_INTL_FE_CUST_IND': '对手方行内客户标识', 'INT_BNK_TR_IND': '是否跨行交易', 'SAME_NAM_IND': '同名账户标识', 'CPT_CUST_NO': '交易对手客户编号'},\n",
    "              axis=1,\n",
    "              inplace=True\n",
    "             )\n",
    "    return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b92cbe60-099a-4da6-b9cd-4e6cf7e7fb2d",
   "metadata": {
    "execution": {
     "iopub.status.busy": "2024-11-11T10:51:55.265321Z",
     "iopub.status.idle": "2024-11-11T10:51:55.265754Z",
     "msg_id": "375fdcbe-9d79-4874-be72-2a58df87dbd1",
     "shell.execute_reply": "2024-11-11T10:51:55.265609Z",
     "shell.execute_reply.started": "2024-11-11T10:51:55.265595Z"
    }
   },
   "outputs": [],
   "source": [
    "def agg_statistics(df, group_cols, agg_functions, name_flag, p=False):\n",
    "    \"\"\"\n",
    "    分组聚合。\n",
    "    \"\"\"\n",
    "    ga = df.groupby(by=group_cols).agg(agg_functions)\n",
    "    ga.columns = [\"{}_{}_{}\".format(e[0], e[1], name_flag) for e in ga.columns.tolist()]\n",
    "    ga.reset_index(inplace=True)\n",
    "    \n",
    "    new_cols = [col for col in ga.columns.tolist() if col not in group_cols]\n",
    "    if p is True:\n",
    "        print(\"新聚合特征：\\n\", new_cols)\n",
    "    \n",
    "    return ga, new_cols"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d970bd24-4399-446d-9b97-fd9b5f9db18d",
   "metadata": {
    "execution": {
     "iopub.status.busy": "2024-11-11T10:51:55.266547Z",
     "iopub.status.idle": "2024-11-11T10:51:55.266834Z",
     "msg_id": "ca44126a-fe24-4399-b940-b4fe42300e55",
     "shell.execute_reply": "2024-11-11T10:51:55.266699Z",
     "shell.execute_reply.started": "2024-11-11T10:51:55.266687Z"
    }
   },
   "outputs": [],
   "source": [
    "# 趋势差分特征衍生\n",
    "def get_kurt(series_x):\n",
    "    kurt = series_x.kurt()\n",
    "    return kurt\n",
    "    \n",
    "def trend_indicator(df, group_dim_1, group_dim_2, agg_functions, name_flag, offset=-1):\n",
    "    \"\"\"\n",
    "    group_dim_1：第一维度\n",
    "    group_dim_2：第二维度\n",
    "    \"\"\"\n",
    "    df = df.sort_values(by=group_dim_2, ascending=True)\n",
    "    ga = df.groupby(by=[group_dim_1, group_dim_2]).agg(agg_functions)\n",
    "    ga.columns = [\"{}_{}_{}\".format(e[0], name_flag, e[1]) for e in ga.columns.tolist()]\n",
    "    new_features = ga.columns.tolist()\n",
    "    ga.reset_index(inplace=True)\n",
    "\n",
    "    diff_new_features = []\n",
    "    for fea in new_features:\n",
    "        t = \"一阶差分_{}_{}\".format(fea, offset)\n",
    "        diff_new_features.append(t)\n",
    "        ga[t] = ga.groupby(by=group_dim_1)[fea].diff(offset) # -1\n",
    "\n",
    "    all_new_features = new_features + diff_new_features\n",
    "    agg_functions_tmp = {}\n",
    "    for fea in all_new_features:\n",
    "        agg_functions_tmp.update({fea:['last','mean','skew',get_kurt,'std','sum','max','min']})    \n",
    "\n",
    "    ga_new, _ = agg_statistics(df=ga, group_cols=[group_dim_1], agg_functions=agg_functions_tmp, name_flag=\"差分特征_{}\".format(name_flag))\n",
    "\n",
    "    return ga_new"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5b765a82-eb46-424c-9c43-bec755069d11",
   "metadata": {},
   "source": [
    "# 标签信息表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a3adb0a3-62d0-4672-9adc-fb30c177408b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-12T04:45:20.886325Z",
     "iopub.status.busy": "2024-11-12T04:45:20.885789Z",
     "iopub.status.idle": "2024-11-12T04:45:20.956783Z",
     "msg_id": "db7fcfdd-3932-4f90-8157-5323c4d6eb7f",
     "shell.execute_reply": "2024-11-12T04:45:20.956058Z",
     "shell.execute_reply.started": "2024-11-12T04:45:20.886292Z"
    }
   },
   "outputs": [],
   "source": [
    "TARGET = get_data(\"XW_ENTINFO_TARGET\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "706639ed-196a-4608-bca9-b1053c5dc23b",
   "metadata": {},
   "source": [
    "# 企业基本信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cb7a1342-fe8c-45d2-9938-f4a97bbeb8c8",
   "metadata": {
    "execution": {
     "iopub.status.busy": "2024-11-11T10:51:55.268882Z",
     "iopub.status.idle": "2024-11-11T10:51:55.269169Z",
     "msg_id": "95eee9a3-07a4-4ebc-899b-35516c1e9bec",
     "shell.execute_reply": "2024-11-11T10:51:55.269036Z",
     "shell.execute_reply.started": "2024-11-11T10:51:55.269023Z"
    }
   },
   "outputs": [],
   "source": [
    "BASIC = get_data(\"XW_ENTINFO_BASIC\").merge(TARGET[[\"客户编号\",\"FLAG\"]], how=\"left\", on=\"客户编号\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "25b7f9c3-3e66-41f2-a206-9a693328dc6f",
   "metadata": {},
   "source": [
    "# 企业金融性交易明细"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f9f4df49-11dd-48e7-b8ad-92582cdfa0ae",
   "metadata": {},
   "source": [
    "## 第一版差分特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "757b38ef-bb6c-4551-9345-8c61beb13036",
   "metadata": {
    "execution": {
     "iopub.status.busy": "2024-11-11T10:51:55.270210Z",
     "iopub.status.idle": "2024-11-11T10:51:55.270488Z",
     "msg_id": "3c6d098b-3ea7-4858-9e17-9031f10e3cde",
     "shell.execute_reply": "2024-11-11T10:51:55.270356Z",
     "shell.execute_reply.started": "2024-11-11T10:51:55.270344Z"
    }
   },
   "outputs": [],
   "source": [
    "def 企业金融性交易明细_第一版差分特征():\n",
    "\n",
    "    data = get_data(\"XW_ENTINFO_FNCL_TR_DTAL\").merge(TARGET[[\"客户编号\",\"FLAG\"]], how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    # 匹配企业成立日期\n",
    "    data = data.merge(BASIC[[\"客户编号\",\"成立日期\",\"数据日期\"]].astype(\"str\"), how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    data.rename(mapper={\"数据日期\":\"采样日期\"}, inplace=True,axis=1)\n",
    "    \n",
    "    data[\"交易日期\"] = data[\"交易日期\"].astype(\"str\").astype(\"datetime64[ns]\")\n",
    "    data[\"采样日期\"] = data[\"采样日期\"].astype(\"str\").astype(\"datetime64[ns]\")\n",
    "    data[\"采样日期_距离_交易日期_天数\"] = (data[\"采样日期\"] - data[\"交易日期\"]).dt.days # 0-90\n",
    "    \n",
    "    data[\"采样日期_距离_交易日期_7天\"] = data[\"采样日期_距离_交易日期_天数\"] // 7 + 1 \n",
    "    data[\"采样日期_距离_交易日期_15天\"] = data[\"采样日期_距离_交易日期_天数\"] // 15 + 1\n",
    "    data[\"采样日期_距离_交易日期_30天\"] = data[\"采样日期_距离_交易日期_天数\"] // 30 + 1\n",
    "    \n",
    "    agg_functions_diff =  {\n",
    "        \"合约账户余额\":[\"sum\",\"mean\"],\n",
    "        \"折人民币交易金额\":[\"sum\",\"mean\"],\n",
    "    }\n",
    "    \n",
    "    # 差分特征\n",
    "    data_agg = pd.DataFrame()\n",
    "    for g in [30,7,15]:\n",
    "        temp_diff = trend_indicator(df=data,\n",
    "                                   group_dim_1=\"客户编号\",\n",
    "                                   group_dim_2=\"采样日期_距离_交易日期_{}天\".format(g),\n",
    "                                   agg_functions=agg_functions_diff, \n",
    "                                   name_flag=\"金融性交易_{}天流水\".format(g))\n",
    "        \n",
    "        if data_agg.empty :\n",
    "            data_agg = copy.deepcopy(temp_diff)\n",
    "        else:\n",
    "            data_agg = data_agg.merge(temp_diff, how=\"left\", on=\"客户编号\")  \n",
    "        \n",
    "        temp1_diff = trend_indicator(df=data[data[\"现转标识\"] == 1],\n",
    "                                     group_dim_1=\"客户编号\",\n",
    "                                     group_dim_2=\"采样日期_距离_交易日期_{}天\".format(g),\n",
    "                                     agg_functions=agg_functions_diff, \n",
    "                                     name_flag=\"金融性交易_现转标识1_{}天流水\".format(g))\n",
    "        data_agg = data_agg.merge(temp1_diff, how=\"left\", on=\"客户编号\")\n",
    "        \n",
    "        temp2_diff = trend_indicator(df=data[data[\"现转标识\"] == 0],\n",
    "                                     group_dim_1=\"客户编号\",\n",
    "                                     group_dim_2=\"采样日期_距离_交易日期_{}天\".format(g),\n",
    "                                     agg_functions=agg_functions_diff, \n",
    "                                     name_flag=\"金融性交易_现转标识0_{}天流水\".format(g))\n",
    "        data_agg = data_agg.merge(temp2_diff, how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "        temp3_diff = trend_indicator(df=data[data[\"钞汇标识\"] == 1],\n",
    "                                     group_dim_1=\"客户编号\",\n",
    "                                     group_dim_2=\"采样日期_距离_交易日期_{}天\".format(g),\n",
    "                                     agg_functions=agg_functions_diff, \n",
    "                                     name_flag=\"金融性交易_钞汇标识1_{}天流水\".format(g))\n",
    "        data_agg = data_agg.merge(temp3_diff, how=\"left\", on=\"客户编号\")\n",
    "        \n",
    "        temp4_diff = trend_indicator(df=data[data[\"钞汇标识\"] == 0],\n",
    "                                     group_dim_1=\"客户编号\",\n",
    "                                     group_dim_2=\"采样日期_距离_交易日期_{}天\".format(g),\n",
    "                                     agg_functions=agg_functions_diff, \n",
    "                                     name_flag=\"金融性交易_钞汇标识0_{}天流水\".format(g))\n",
    "        data_agg = data_agg.merge(temp4_diff, how=\"left\", on=\"客户编号\")\n",
    "    del temp_diff, temp1_diff, temp2_diff, temp3_diff, temp4_diff\n",
    "    gc.collect()\n",
    "    \n",
    "    for g in [7, 15, 30]:\n",
    "        temp1_diff = trend_indicator(df=data[data[\"记账方向代码\"] == \"16459755d990723240edb88e34a13fab\" ],\n",
    "                                     group_dim_1=\"客户编号\",\n",
    "                                     group_dim_2=\"采样日期_距离_交易日期_{}天\".format(g),\n",
    "                                     agg_functions=agg_functions_diff, \n",
    "                                     name_flag=\"金融性交易_记账方向代码164_{}天流水\".format(g))\n",
    "        data_agg = data_agg.merge(temp1_diff, how=\"left\", on=\"客户编号\")\n",
    "        \n",
    "        temp2_diff = trend_indicator(df=data[data[\"记账方向代码\"] == \"1250d7cb654a81c7b9366dabf57fe62b\" ],\n",
    "                                     group_dim_1=\"客户编号\",\n",
    "                                     group_dim_2=\"采样日期_距离_交易日期_{}天\".format(g),\n",
    "                                     agg_functions=agg_functions_diff, \n",
    "                                     name_flag=\"金融性交易_记账方向代码125_{}天流水\".format(g))\n",
    "        data_agg = data_agg.merge(temp2_diff, how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    return data_agg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2456a185-55cc-45e7-baa0-b78c34f7ca7f",
   "metadata": {
    "execution": {
     "iopub.status.busy": "2024-11-11T10:51:55.271323Z",
     "iopub.status.idle": "2024-11-11T10:51:55.271603Z",
     "msg_id": "91fed015-eb99-46de-a48a-8cc0f7d99900",
     "shell.execute_reply": "2024-11-11T10:51:55.271472Z",
     "shell.execute_reply.started": "2024-11-11T10:51:55.271459Z"
    }
   },
   "outputs": [],
   "source": [
    "fea_第一版差分特征 = 企业金融性交易明细_第一版差分特征()\n",
    "fea_第一版差分特征.to_pickle(\"../data/B_企业金融性交易明细_差分特征.pkl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "17308e24-4149-46b9-ac41-b4f25cdf97ef",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-05T03:30:50.475341Z",
     "iopub.status.busy": "2024-11-05T03:30:50.474857Z"
    }
   },
   "outputs": [],
   "source": [
    "# fea_第一版差分特征.to_pickle(\"/home/mole/work/xukunzhou/B榜/20241105/重跑数据/企业金融性交易明细_差分特征.pkl\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "930f5641-8b27-4437-be2e-cfb14688baed",
   "metadata": {},
   "source": [
    "## 第二版简单逻辑特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a256bc57-a039-4233-ac77-1dc73cd79a03",
   "metadata": {
    "execution": {
     "iopub.status.busy": "2024-11-11T10:51:55.272813Z",
     "iopub.status.idle": "2024-11-11T10:51:55.273110Z",
     "msg_id": "428bd3c1-a0a9-4677-88c1-9197b1e94af4",
     "shell.execute_reply": "2024-11-11T10:51:55.272974Z",
     "shell.execute_reply.started": "2024-11-11T10:51:55.272960Z"
    }
   },
   "outputs": [],
   "source": [
    "def 企业金融性交易明细_第二版简单逻辑特征():\n",
    "    data = get_data(\"XW_ENTINFO_FNCL_TR_DTAL\").merge(TARGET[[\"客户编号\",\"FLAG\"]], how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    # 匹配企业成立日期\n",
    "    data = data.merge(BASIC[[\"客户编号\",\"成立日期\",\"数据日期\"]].astype(\"str\"), how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    # 最近一笔交易日期 与 采样日期有差距，范围是 0~88\n",
    "    data.rename(mapper={\"数据日期\":\"采样日期\"}, inplace=True,axis=1)\n",
    "    \n",
    "    data[\"交易日期\"] = data[\"交易日期\"].astype(\"str\").astype(\"datetime64[ns]\")\n",
    "    data[\"采样日期\"] = data[\"采样日期\"].astype(\"str\").astype(\"datetime64[ns]\")\n",
    "    data[\"采样日期_距离_交易日期_天数\"] = (data[\"采样日期\"] - data[\"交易日期\"]).dt.days # 0-90\n",
    "    \n",
    "    data[\"采样日期_距离_交易日期_30天\"] = data[\"采样日期_距离_交易日期_天数\"] // 30 + 1\n",
    "    \n",
    "    # 衍生客户采样时最近一周是否有交易\n",
    "    data[\"交易日期_距离采样日期_是否7天内\"] = data[\"采样日期_距离_交易日期_天数\"].apply(lambda x: 1 if x<7 else 0)\n",
    "    data[\"交易日期_距离采样日期_是否30天内\"] = data[\"采样日期_距离_交易日期_天数\"].apply(lambda x: 1 if x<30 else 0)\n",
    "    data[\"交易日期_距离采样日期_是否120天内\"] = data[\"采样日期_距离_交易日期_天数\"].apply(lambda x: 1 if x<=120 else 0)\n",
    "    \n",
    "    # 剔除同名转账\n",
    "    fea_同名转账占比 = data[[\"客户编号\",\"同名账户标识\"]].groupby(by=\"客户编号\").agg(\"mean\")\n",
    "    fea_同名转账占比.columns = [\"采样前120天_同名转账笔数占比\"]\n",
    "    fea_同名转账占比.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    # 剔除同名转账\n",
    "    data = data[data[\"同名账户标识\"] == 0]\n",
    "    \n",
    "    # PART1-采样前一周内金融性交易笔数\n",
    "    fea_采样前一周交易笔数 = data[[\"客户编号\",\"交易日期_距离采样日期_是否7天内\",\"交易日期_距离采样日期_是否30天内\",\"交易日期_距离采样日期_是否120天内\"]].groupby(by=\"客户编号\").agg(\"sum\")\n",
    "    fea_采样前一周交易笔数.columns = [\"采样前7天内金融性交易笔数\",\"采样前30天内金融性交易笔数\",\"采样前120天内金融性交易笔数\"]\n",
    "    fea_采样前一周交易笔数[\"采样前7天内金融性交易笔数_占比\"] = fea_采样前一周交易笔数[\"采样前7天内金融性交易笔数\"] / fea_采样前一周交易笔数[\"采样前120天内金融性交易笔数\"]\n",
    "    fea_采样前一周交易笔数[\"采样前30天内金融性交易笔数_占比\"] = fea_采样前一周交易笔数[\"采样前30天内金融性交易笔数\"] / fea_采样前一周交易笔数[\"采样前120天内金融性交易笔数\"]\n",
    "    fea_采样前一周交易笔数.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    # 是否为不常见类型的交易，频率低于 5‰，约250类\n",
    "    tail_ind = data[\"交易代码\"].value_counts(normalize=True)[data[\"交易代码\"].value_counts(normalize=True) < 0.01].index.tolist()\n",
    "    data[\"是否为少见交易类型\"] = data[\"交易代码\"].apply(lambda x: 1 if x in tail_ind else 0)\n",
    "    \n",
    "    fea_不常见交易 = data[[\"客户编号\",\"是否为少见交易类型\"]].groupby(by=\"客户编号\").agg([\"sum\",\"count\"])\n",
    "    fea_不常见交易.columns = [\"采样前120天少见类型交易笔数\",\"总交易笔数\"]\n",
    "    fea_不常见交易[\"采样前120天内少见类型交易笔数_占比\"] = fea_不常见交易[\"采样前120天少见类型交易笔数\"] / fea_不常见交易[\"总交易笔数\"]\n",
    "    fea_不常见交易.reset_index(drop=False, inplace=True)\n",
    "    fea_不常见交易.drop(columns=[\"总交易笔数\"],axis=1,inplace=True)\n",
    "    \n",
    "    \n",
    "    \n",
    "    # 是否为不常见渠道的交易，频率低于 1％，29/40类， 坏率0.024 VS 0.007\n",
    "    tail_ind = data[\"渠道代码\"].value_counts(normalize=True)[data[\"渠道代码\"].value_counts(normalize=True) < 0.01].index.tolist()\n",
    "    data[\"是否为少见渠道交易\"] = data[\"渠道代码\"].apply(lambda x: 1 if x in tail_ind else 0)\n",
    "    # 是否为最常见两类渠道的交易，坏率 0.015 VS 0.027\n",
    "    top2_ind = [\"9b211b103ee15fecafea4a16f3ec62f1\", \"2be0e6cf9dab3119ff0391c27dec73c2\"]\n",
    "    data[\"是否为频率最高的两类渠道交易\"] = data[\"渠道代码\"].apply(lambda x: 1 if x in top2_ind else 0)\n",
    "    \n",
    "    fea_分渠道交易 = data[[\"客户编号\",\"是否为少见渠道交易\",\"是否为频率最高的两类渠道交易\"]].groupby(by=\"客户编号\").agg({\"是否为少见渠道交易\":[\"sum\",\"count\"],\"是否为频率最高的两类渠道交易\":[\"sum\"]})\n",
    "    fea_分渠道交易.columns = [\"采样前120天少见渠道交易笔数\",\"总交易笔数\",\"采样前120天频率最高两类渠道交易笔数\"]\n",
    "    fea_分渠道交易[\"采样前120天内少见渠道交易笔数_占比\"] = fea_分渠道交易[\"采样前120天少见渠道交易笔数\"] / fea_分渠道交易[\"总交易笔数\"]\n",
    "    fea_分渠道交易[\"采样前120天内频率最高两类渠道交易笔数_占比\"] = fea_分渠道交易[\"采样前120天频率最高两类渠道交易笔数\"] / fea_分渠道交易[\"总交易笔数\"]\n",
    "    fea_分渠道交易.reset_index(drop=False, inplace=True)\n",
    "    fea_分渠道交易.drop(columns=[\"总交易笔数\"],axis=1,inplace=True)\n",
    "    \n",
    "    \n",
    "    \n",
    "    # 交易对手类型，只有两类取值，交易数量及交易坏率，无明显差异\n",
    "    # 统计客户对公客户、个人客户交易笔数/金额\n",
    "    data[\"交易对手类型代码\"] = data[\"交易对手类型代码\"].map({\"89e3310a438292017fbbb0f2f799f948\":\"对公\", \"95d423a88e97fd7197c280e86489cef5\":\"个人\"})\n",
    "    fea_对公个人交易金额 = data[[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    fea_对公个人交易金额.columns = [\"采样前120天客户折人民币交易总金额\"]\n",
    "    fea_对公个人交易金额.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    t_对公 = data[data[\"交易对手类型代码\"] == \"对公\"][[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    t_对公.columns = [\"采样前120天客户_对公_折人民币交易总金额\"]\n",
    "    t_对公.reset_index(drop=False, inplace=True)\n",
    "    t_个人 = data[data[\"交易对手类型代码\"] == \"个人\"][[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    t_个人.columns = [\"采样前120天客户_个人_折人民币交易总金额\"]\n",
    "    t_个人.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    fea_对公个人交易金额 = fea_对公个人交易金额.merge(t_对公, how=\"left\", on=\"客户编号\")\n",
    "    fea_对公个人交易金额 = fea_对公个人交易金额.merge(t_个人, how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    fea_对公个人交易金额 = fea_对公个人交易金额.fillna(0)\n",
    "    fea_对公个人交易金额[\"对公交易金额占比\"] = fea_对公个人交易金额[\"采样前120天客户_对公_折人民币交易总金额\"] / fea_对公个人交易金额[\"采样前120天客户折人民币交易总金额\"]\n",
    "    fea_对公个人交易金额[\"对公_个人交易金额占比\"] = fea_对公个人交易金额[\"采样前120天客户_对公_折人民币交易总金额\"] / fea_对公个人交易金额[\"采样前120天客户_个人_折人民币交易总金额\"]\n",
    "    fea_对公个人交易金额 = fea_对公个人交易金额.drop(columns=[\"采样前120天客户折人民币交易总金额\"])\n",
    "    \n",
    "    # 记账方向代码，只有两类取值\n",
    "    data[\"记账方向代码\"] = data[\"记账方向代码\"].map({\"16459755d990723240edb88e34a13fab\":\"转出\", \"1250d7cb654a81c7b9366dabf57fe62b\":\"转入\"})\n",
    "    fea_转入转出交易金额 = data[[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    fea_转入转出交易金额.columns = [\"采样前120天客户折人民币交易总金额\"]\n",
    "    fea_转入转出交易金额.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    t_转出 = data[data[\"记账方向代码\"] == \"转出\"][[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    t_转出.columns = [\"采样前120天客户_转出_折人民币交易总金额\"]\n",
    "    t_转出.reset_index(drop=False, inplace=True)\n",
    "    t_转入 = data[data[\"记账方向代码\"] == \"转入\"][[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    t_转入.columns = [\"采样前120天客户_转入_折人民币交易总金额\"]\n",
    "    t_转入.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    fea_转入转出交易金额 = fea_转入转出交易金额.merge(t_转出, how=\"left\", on=\"客户编号\")\n",
    "    fea_转入转出交易金额 = fea_转入转出交易金额.merge(t_转入, how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    fea_转入转出交易金额 = fea_转入转出交易金额.fillna(0)\n",
    "    fea_转入转出交易金额[\"转出金额占比\"] =  fea_转入转出交易金额[\"采样前120天客户_转出_折人民币交易总金额\"] / fea_转入转出交易金额[\"采样前120天客户折人民币交易总金额\"]\n",
    "    fea_转入转出交易金额[\"转出_转入金额占比\"] =  fea_转入转出交易金额[\"采样前120天客户_转出_折人民币交易总金额\"] / fea_转入转出交易金额[\"采样前120天客户_转入_折人民币交易总金额\"]\n",
    "    fea_转入转出交易金额 = fea_转入转出交易金额.drop(columns=[\"采样前120天客户折人民币交易总金额\"])\n",
    "    \n",
    "    # 是否跨行交易，只有两类取值\n",
    "    data[\"是否跨行交易\"] = data[\"是否跨行交易\"].map({0.0:\"行内\", 1.0:\"跨行\"})\n",
    "    fea_是否跨行交易金额 = data[[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    fea_是否跨行交易金额.columns = [\"采样前120天客户折人民币交易总金额\"]\n",
    "    fea_是否跨行交易金额.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    t_行内 = data[data[\"是否跨行交易\"] == \"行内\"][[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    t_行内.columns = [\"采样前120天客户_行内_折人民币交易总金额\"]\n",
    "    t_行内.reset_index(drop=False, inplace=True)\n",
    "    t_跨行 = data[data[\"是否跨行交易\"] == \"跨行\"][[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    t_跨行.columns = [\"采样前120天客户_跨行_折人民币交易总金额\"]\n",
    "    t_跨行.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    fea_是否跨行交易金额 = fea_是否跨行交易金额.merge(t_行内, how=\"left\", on=\"客户编号\")\n",
    "    fea_是否跨行交易金额 = fea_是否跨行交易金额.merge(t_跨行, how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    fea_是否跨行交易金额 = fea_是否跨行交易金额.fillna(0)\n",
    "    fea_是否跨行交易金额[\"行内转账金额占比\"] = fea_是否跨行交易金额[\"采样前120天客户_行内_折人民币交易总金额\"] / fea_是否跨行交易金额[\"采样前120天客户折人民币交易总金额\"]\n",
    "    fea_是否跨行交易金额[\"行内_行外转账金额占比\"] = fea_是否跨行交易金额[\"采样前120天客户_行内_折人民币交易总金额\"] / fea_是否跨行交易金额[\"采样前120天客户_跨行_折人民币交易总金额\"]\n",
    "    fea_是否跨行交易金额 = fea_是否跨行交易金额.drop(columns=[\"采样前120天客户折人民币交易总金额\"])\n",
    "    \n",
    "    # 行内客户转账\n",
    "    data[\"对手方行内客户标识\"] = data[\"对手方行内客户标识\"].map({0.0:\"行内\", 1.0:\"行外\"})\n",
    "    fea_是否行内对手 = data[[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    fea_是否行内对手.columns = [\"采样前120天客户折人民币交易总金额\"]\n",
    "    fea_是否行内对手.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    t_行内 = data[data[\"对手方行内客户标识\"] == \"行内\"][[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    t_行内.columns = [\"采样前120天客户_行内对手_折人民币交易总金额\"]\n",
    "    t_行内.reset_index(drop=False, inplace=True)\n",
    "    t_行外 = data[data[\"对手方行内客户标识\"] == \"跨行\"][[\"客户编号\",\"折人民币交易金额\"]].groupby(by=\"客户编号\").sum()\n",
    "    t_行外.columns = [\"采样前120天客户_行外对手_折人民币交易总金额\"]\n",
    "    t_行外.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    fea_是否行内对手 = fea_是否行内对手.merge(t_行内, how=\"left\", on=\"客户编号\")\n",
    "    fea_是否行内对手 = fea_是否行内对手.merge(t_行外, how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    fea_是否行内对手 = fea_是否行内对手.fillna(0)\n",
    "    fea_是否行内对手[\"对手方行内转账金额占比\"] = fea_是否行内对手[\"采样前120天客户_行内对手_折人民币交易总金额\"] / fea_是否行内对手[\"采样前120天客户折人民币交易总金额\"]\n",
    "    fea_是否行内对手[\"对手方行内_行外转账金额占比\"] = fea_是否行内对手[\"采样前120天客户_行内对手_折人民币交易总金额\"] / fea_是否行内对手[\"采样前120天客户_行外对手_折人民币交易总金额\"]\n",
    "    fea_是否行内对手 = fea_是否行内对手.drop(columns=[\"采样前120天客户折人民币交易总金额\"])\n",
    "    \n",
    "    fea_final = fea_同名转账占比.merge(fea_采样前一周交易笔数, how=\"left\", on=\"客户编号\")\n",
    "    fea_final = fea_final.merge(fea_不常见交易, how=\"left\", on=\"客户编号\")\n",
    "    fea_final = fea_final.merge(fea_分渠道交易, how=\"left\", on=\"客户编号\")\n",
    "    fea_final = fea_final.merge(fea_对公个人交易金额, how=\"left\", on=\"客户编号\")\n",
    "    fea_final = fea_final.merge(fea_转入转出交易金额, how=\"left\", on=\"客户编号\")\n",
    "    fea_final = fea_final.merge(fea_是否跨行交易金额, how=\"left\", on=\"客户编号\")\n",
    "    fea_final = fea_final.merge(fea_是否行内对手, how=\"left\", on=\"客户编号\")\n",
    "\n",
    "    return fea_final"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "34d2a18b-c39c-412c-a282-66dfec61b105",
   "metadata": {
    "execution": {
     "iopub.status.busy": "2024-11-11T10:51:55.273802Z",
     "iopub.status.idle": "2024-11-11T10:51:55.274086Z",
     "msg_id": "c74d9901-3ded-4488-931a-e1eea95374ab",
     "shell.execute_reply": "2024-11-11T10:51:55.273953Z",
     "shell.execute_reply.started": "2024-11-11T10:51:55.273940Z"
    }
   },
   "outputs": [],
   "source": [
    "fea_final = 企业金融性交易明细_第二版简单逻辑特征()\n",
    "fea_final.to_pickle(\"../data/B_企业金融性交易流水_简单逻辑特征.pkl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cfff7415-4511-4254-bfe9-64737dc63dac",
   "metadata": {},
   "outputs": [],
   "source": [
    "# fea_final.to_pickle(\"/home/mole/work/xukunzhou/B榜/20241105/重跑数据/企业金融性交易流水_简单逻辑特征.pkl\") # 对最近120天数据直接聚合"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e9cd04dd-0021-452b-a9c2-492a519b4c07",
   "metadata": {},
   "source": [
    "## 第二版差分特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "063ef3f6-d28c-45c0-83c8-5edb5da580d4",
   "metadata": {
    "execution": {
     "iopub.status.busy": "2024-11-11T10:51:55.275235Z",
     "iopub.status.idle": "2024-11-11T10:51:55.275537Z",
     "msg_id": "e665cdc7-5ffe-49b6-ad03-26cfc782b333",
     "shell.execute_reply": "2024-11-11T10:51:55.275396Z",
     "shell.execute_reply.started": "2024-11-11T10:51:55.275383Z"
    }
   },
   "outputs": [],
   "source": [
    "def 交易流水_第二版差分特征():\n",
    "    \"\"\"\n",
    "    按月份统计差分,覆盖交易对手类型、记账方向代码、交易代码（常见少见）\n",
    "    \"\"\"\n",
    "    data = get_data(\"XW_ENTINFO_FNCL_TR_DTAL\").merge(TARGET[[\"客户编号\",\"FLAG\"]], how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    data[\"交易年月\"] = data[\"交易日期\"].apply(lambda x:str(x)[:6])\n",
    "    # data[\"交易年月\"] = data[\"交易年月\"].map({\"200208\":1,\"200207\":2,\"200206\":3,\"200205\":4,\"200204\":5})\n",
    "    data[\"交易年月\"] = data[\"交易年月\"].map({\"200209\":1,\"200208\":2,\"200207\":3,\"200206\":4,\"200205\":5,\"200204\":6})\n",
    "    \n",
    "    agg_functions_diff =  {\n",
    "        \"合约账户余额\":[\"sum\",\"mean\",\"count\"],\n",
    "        \"折人民币交易金额\":[\"sum\",\"mean\"],\n",
    "    }\n",
    "    \n",
    "    # 全部数据差分\n",
    "    全部流水_diff = trend_indicator(df=data,\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    # 对公个人客户交易流水差分\n",
    "    data[\"交易对手类型代码\"] = data[\"交易对手类型代码\"].map({\"89e3310a438292017fbbb0f2f799f948\":\"对公\", \"95d423a88e97fd7197c280e86489cef5\":\"个人\"})\n",
    "    对公流水_diff = trend_indicator(df=data[data[\"交易对手类型代码\"] == \"对公\"],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_对公_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    个人流水_diff = trend_indicator(df=data[data[\"交易对手类型代码\"] == \"个人\"],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_个人_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    # 转入转出流水差分\n",
    "    data[\"记账方向代码\"] = data[\"记账方向代码\"].map({\"16459755d990723240edb88e34a13fab\":\"转出\", \"1250d7cb654a81c7b9366dabf57fe62b\":\"转入\"})\n",
    "    转出流水_diff = trend_indicator(df=data[data[\"记账方向代码\"] == \"转出\"],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_转出_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    转入流水_diff = trend_indicator(df=data[data[\"记账方向代码\"] == \"转入\"],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_转入_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    # 常见少见交易流水差分\n",
    "    tail_ind = data[\"交易代码\"].value_counts(normalize=True)[data[\"交易代码\"].value_counts(normalize=True) < 0.01].index.tolist()\n",
    "    data[\"是否为少见交易类型\"] = data[\"交易代码\"].apply(lambda x: 1 if x in tail_ind else 0)\n",
    "    \n",
    "    常见交易流水_diff = trend_indicator(df=data[data[\"是否为少见交易类型\"] == 0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_常见交易_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    少见交易流水_diff = trend_indicator(df=data[data[\"是否为少见交易类型\"] == 1],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_少见交易_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    \n",
    "    # 对手方行内客户流水差分\n",
    "    对手0流水_diff = trend_indicator(df=data[data[\"对手方行内客户标识\"] == 0.0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_对手方行内0_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    对手1流水_diff = trend_indicator(df=data[data[\"对手方行内客户标识\"] == 1.0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_对手方行内1_按月流水\"\n",
    "                           )\n",
    "    \n",
    "    # 是否跨行交易流水差分\n",
    "    跨行0流水_diff = trend_indicator(df=data[data[\"是否跨行交易\"] == 0.0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_跨行0.0_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    跨行1流水_diff = trend_indicator(df=data[data[\"是否跨行交易\"] == 1.0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_跨行1.0_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    # 是否同名账户流水差分\n",
    "    同名0流水_diff = trend_indicator(df=data[data[\"同名账户标识\"] == 0.0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_同名0.0_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    同名1流水_diff = trend_indicator(df=data[data[\"同名账户标识\"] == 1.0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"交易年月\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_同名1.0_按月流水\"\n",
    "                               )\n",
    "    \n",
    "    fea_二次差分 = 全部流水_diff.merge(对公流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_二次差分 = fea_二次差分.merge(个人流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_二次差分 = fea_二次差分.merge(转出流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_二次差分 = fea_二次差分.merge(转入流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_二次差分 = fea_二次差分.merge(常见交易流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_二次差分 = fea_二次差分.merge(少见交易流水_diff, how=\"left\",on=\"客户编号\")\n",
    "\n",
    "    fea_二次差分 = fea_二次差分.merge(对手0流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_二次差分 = fea_二次差分.merge(对手1流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_二次差分 = fea_二次差分.merge(跨行0流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_二次差分 = fea_二次差分.merge(跨行1流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_二次差分 = fea_二次差分.merge(同名0流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_二次差分 = fea_二次差分.merge(同名1流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    \n",
    "    return fea_二次差分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "19f5af99-5776-4c83-a24e-7a798f6568c9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-11T11:01:18.598504Z",
     "iopub.status.busy": "2024-11-11T11:01:18.598015Z",
     "iopub.status.idle": "2024-11-11T11:36:35.109278Z",
     "msg_id": "4cedf0f1-8588-408e-8344-5e788172af95",
     "shell.execute_reply": "2024-11-11T11:36:35.108233Z",
     "shell.execute_reply.started": "2024-11-11T11:01:18.598475Z"
    }
   },
   "outputs": [],
   "source": [
    "# fea_二次差分 = 交易流水_第二版差分特征()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "e94c42af-be13-4e64-a3c3-a392eea53388",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-11T11:39:58.041099Z",
     "iopub.status.busy": "2024-11-11T11:39:58.040611Z",
     "iopub.status.idle": "2024-11-11T11:39:58.840198Z",
     "msg_id": "772b64b2-9f57-4a90-989c-ae2033a31394",
     "shell.execute_reply": "2024-11-11T11:39:58.839426Z",
     "shell.execute_reply.started": "2024-11-11T11:39:58.041069Z"
    }
   },
   "outputs": [],
   "source": [
    "fea_二次差分.to_pickle(\"../data/B_金融性交易明细_第二版差分特征_v2_1105.pkl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fd44d31b-985e-471e-a9b0-f2fdacb2546b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# fea_二次差分.to_pickle(\"/home/mole/work/xukunzhou/B榜/20241105/重跑数据/金融性交易明细_第二版差分特征_v2_1105.pkl\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b95c6f3c-6a42-4390-856b-bec272b075d5",
   "metadata": {},
   "source": [
    "## 合约账户余额新版特征：按周差分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "3a4d91a2-7f1c-469a-9148-494b902f7d06",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-11T11:40:10.471788Z",
     "iopub.status.busy": "2024-11-11T11:40:10.471083Z",
     "iopub.status.idle": "2024-11-11T11:40:10.494141Z",
     "msg_id": "9c8617c2-8fc9-472c-b328-99f750db6a7c",
     "shell.execute_reply": "2024-11-11T11:40:10.493389Z",
     "shell.execute_reply.started": "2024-11-11T11:40:10.471759Z"
    }
   },
   "outputs": [],
   "source": [
    "def 交易流水_第三版差分特征():\n",
    "    \"\"\"\n",
    "    与第二版的差别在与按7天进行差分\n",
    "    \"\"\"\n",
    "    data = get_data(\"XW_ENTINFO_FNCL_TR_DTAL\").merge(TARGET[[\"客户编号\",\"FLAG\"]], how=\"left\", on=\"客户编号\")\n",
    "    # 匹配企业成立日期\n",
    "    data = data.merge(BASIC[[\"客户编号\",\"成立日期\",\"数据日期\"]].astype(\"str\"), how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    data.rename(mapper={\"数据日期\":\"采样日期\"}, inplace=True,axis=1)\n",
    "    \n",
    "    data[\"交易日期\"] = data[\"交易日期\"].astype(\"str\").astype(\"datetime64[ns]\")\n",
    "    data[\"采样日期\"] = data[\"采样日期\"].astype(\"str\").astype(\"datetime64[ns]\")\n",
    "    data[\"采样日期_距离_交易日期_天数\"] = (data[\"采样日期\"] - data[\"交易日期\"]).dt.days \n",
    "    \n",
    "    data[\"采样日期_距离_交易日期_7天\"] = data[\"采样日期_距离_交易日期_天数\"] // 7 + 1 \n",
    "    \n",
    "    agg_functions_diff =  {\n",
    "        \"合约账户余额\":[\"sum\",\"mean\",\"count\"],\n",
    "        \"折人民币交易金额\":[\"sum\",\"mean\"],\n",
    "    }\n",
    "    \n",
    "    # 全部数据差分\n",
    "    全部流水_diff = trend_indicator(df=data,\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    # 对公个人客户交易流水差分\n",
    "    data[\"交易对手类型代码\"] = data[\"交易对手类型代码\"].map({\"89e3310a438292017fbbb0f2f799f948\":\"对公\", \"95d423a88e97fd7197c280e86489cef5\":\"个人\"})\n",
    "    对公流水_diff = trend_indicator(df=data[data[\"交易对手类型代码\"] == \"对公\"],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_对公_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    个人流水_diff = trend_indicator(df=data[data[\"交易对手类型代码\"] == \"个人\"],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_个人_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    # 转入转出流水差分\n",
    "    data[\"记账方向代码\"] = data[\"记账方向代码\"].map({\"16459755d990723240edb88e34a13fab\":\"转出\", \"1250d7cb654a81c7b9366dabf57fe62b\":\"转入\"})\n",
    "    转出流水_diff = trend_indicator(df=data[data[\"记账方向代码\"] == \"转出\"],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_转出_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    转入流水_diff = trend_indicator(df=data[data[\"记账方向代码\"] == \"转入\"],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_转入_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    # 常见少见交易流水差分\n",
    "    tail_ind = data[\"交易代码\"].value_counts(normalize=True)[data[\"交易代码\"].value_counts(normalize=True) < 0.01].index.tolist()\n",
    "    data[\"是否为少见交易类型\"] = data[\"交易代码\"].apply(lambda x: 1 if x in tail_ind else 0)\n",
    "    \n",
    "    常见交易流水_diff = trend_indicator(df=data[data[\"是否为少见交易类型\"] == 0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_常见交易_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    少见交易流水_diff = trend_indicator(df=data[data[\"是否为少见交易类型\"] == 1],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_少见交易_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    # 是否跨行交易流水差分\n",
    "    跨行0流水_diff = trend_indicator(df=data[data[\"是否跨行交易\"] == 0.0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_跨行0.0_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    跨行1流水_diff = trend_indicator(df=data[data[\"是否跨行交易\"] == 1.0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_跨行1.0_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    # 是否同名账户流水差分\n",
    "    同名0流水_diff = trend_indicator(df=data[data[\"同名账户标识\"] == 0.0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_同名0.0_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    同名1流水_diff = trend_indicator(df=data[data[\"同名账户标识\"] == 1.0],\n",
    "                               group_dim_1=\"客户编号\",\n",
    "                               group_dim_2=\"采样日期_距离_交易日期_7天\",\n",
    "                               agg_functions=agg_functions_diff, \n",
    "                               name_flag=\"金融性交易_同名1.0_按7天流水\"\n",
    "                               )\n",
    "    \n",
    "    fea_三次差分 = 全部流水_diff.merge(对公流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_三次差分 = fea_三次差分.merge(个人流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_三次差分 = fea_三次差分.merge(转出流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_三次差分 = fea_三次差分.merge(转入流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_三次差分 = fea_三次差分.merge(常见交易流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_三次差分 = fea_三次差分.merge(少见交易流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    \n",
    "    fea_三次差分 = fea_三次差分.merge(跨行0流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_三次差分 = fea_三次差分.merge(跨行1流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_三次差分 = fea_三次差分.merge(同名0流水_diff, how=\"left\",on=\"客户编号\")\n",
    "    fea_三次差分 = fea_三次差分.merge(同名1流水_diff, how=\"left\",on=\"客户编号\")\n",
    "\n",
    "    return fea_三次差分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "280dd60f-d2c3-4134-acb5-14a8f848f92a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-11T11:40:11.526061Z",
     "iopub.status.busy": "2024-11-11T11:40:11.525693Z",
     "iopub.status.idle": "2024-11-11T12:11:52.895499Z",
     "msg_id": "a9a90f99-46d1-490b-8f97-98455d181ad8",
     "shell.execute_reply": "2024-11-11T12:11:52.894703Z",
     "shell.execute_reply.started": "2024-11-11T11:40:11.526033Z"
    }
   },
   "outputs": [],
   "source": [
    "fea_三次差分 = 交易流水_第三版差分特征()\n",
    "fea_三次差分.to_pickle(\"../data/B_金融性交易明细_第三版差分特征_1030.pkl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ff8eba3b-ce0d-422b-9c50-2efe69d84b6f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# fea_三次差分.to_pickle(\"/home/mole/work/xukunzhou/B榜/20241105/重跑数据/金融性交易明细_第三版差分特征_1030.pkl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "6ea030fb-da45-4d13-9847-64b25206ba49",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-12T06:07:49.844811Z",
     "iopub.status.busy": "2024-11-12T06:07:49.844201Z",
     "iopub.status.idle": "2024-11-12T06:07:49.869522Z",
     "msg_id": "6d91b5fc-4384-4c2d-b184-f37e427cb23b",
     "shell.execute_reply": "2024-11-12T06:07:49.868705Z",
     "shell.execute_reply.started": "2024-11-12T06:07:49.844779Z"
    }
   },
   "outputs": [],
   "source": [
    "def 交易金额_省份行业类型平均水平():\n",
    "    TARGET = get_data(\"XW_ENTINFO_TARGET\")\n",
    "    BASIC = get_data(\"XW_ENTINFO_BASIC\")\n",
    "    data = get_data(\"XW_ENTINFO_FNCL_TR_DTAL\").merge(TARGET[[\"客户编号\",\"FLAG\"]], how=\"left\", on=\"客户编号\")\n",
    "    # 匹配企业成立日期\n",
    "    data = data.merge(BASIC[[\"客户编号\",\"企业（机构）类型编码\",\"所在省份编码\",\"国民经济行业代码\"]], how=\"left\", on=\"客户编号\")\n",
    "    \n",
    "    n = 5 # 约95%\n",
    "    top_ind = data[\"企业（机构）类型编码\"].value_counts().sort_values(ascending=False).head(n).index.tolist()\n",
    "    data[\"企业（机构）类型编码\"] = data[\"企业（机构）类型编码\"].apply(lambda x: x if x in top_ind else \"AAAA\")\n",
    "    \n",
    "    n = 300 # 约83%\n",
    "    top_ind = data[\"国民经济行业代码\"].value_counts().sort_values(ascending=False).head(n).index.tolist()\n",
    "    data[\"国民经济行业代码\"] = data[\"国民经济行业代码\"].apply(lambda x: x if x in top_ind else \"AAAA\")\n",
    "    \n",
    "    # 最后一期合约账户余额平均水平\n",
    "    data = data.sort_values(by=\"交易日期\", ascending=True)\n",
    "    aggs = {\"交易日期\":[\"last\"],\n",
    "            \"合约账户余额\":[\"last\"],\n",
    "            \"企业（机构）类型编码\":[\"last\"],\n",
    "            \"所在省份编码\":[\"last\"],\n",
    "            \"国民经济行业代码\":[\"last\"]\n",
    "           }\n",
    "    tmp = data[[\"客户编号\",\"交易日期\",\"合约账户余额\",\"企业（机构）类型编码\",\"所在省份编码\",\"国民经济行业代码\"]].groupby(by=\"客户编号\").agg(aggs)\n",
    "    \n",
    "    tmp.columns = [\"最后一笔交易日期\",\"合约账户余额\",\"企业（机构）类型编码\",\"所在省份编码\",\"国民经济行业代码\"]\n",
    "    \n",
    "    tmp.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    tmp_tmp = tmp.groupby(by=\"所在省份编码\").agg({\"合约账户余额\":[\"mean\"]})\n",
    "    tmp_tmp.columns = [\"省份平均合约账户余额\"]\n",
    "    tmp_tmp.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    tmp = tmp.merge(tmp_tmp, how=\"left\", on=\"所在省份编码\")\n",
    "    \n",
    "    del tmp_tmp\n",
    "    gc.collect()\n",
    "    \n",
    "    tmp_tmp = tmp.groupby(by=\"国民经济行业代码\").agg({\"合约账户余额\":[\"mean\"]})\n",
    "    tmp_tmp.columns = [\"行业平均合约账户余额\"]\n",
    "    tmp_tmp.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    tmp = tmp.merge(tmp_tmp, how=\"left\", on=\"国民经济行业代码\")\n",
    "    \n",
    "    del tmp_tmp\n",
    "    gc.collect()\n",
    "    \n",
    "    tmp_tmp = tmp.groupby(by=\"企业（机构）类型编码\").agg({\"合约账户余额\":[\"mean\"]})\n",
    "    tmp_tmp.columns = [\"企业类型平均合约账户余额\"]\n",
    "    tmp_tmp.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    tmp = tmp.merge(tmp_tmp, how=\"left\", on=\"企业（机构）类型编码\")\n",
    "    \n",
    "    del tmp_tmp\n",
    "    gc.collect()\n",
    "    \n",
    "    tmp[\"合约账户余额_比上_省份平均\"] = tmp[\"合约账户余额\"] / tmp[\"省份平均合约账户余额\"]\n",
    "    tmp[\"合约账户余额_比上_行业平均\"] = tmp[\"合约账户余额\"] / tmp[\"行业平均合约账户余额\"]\n",
    "    tmp[\"合约账户余额_比上_企业类型平均\"] = tmp[\"合约账户余额\"] / tmp[\"企业类型平均合约账户余额\"]\n",
    "    \n",
    "    \n",
    "    \n",
    "    # 折人民币交易金额 平均水平\n",
    "    aggs = {\"折人民币交易金额\":[\"sum\",\"mean\"],\n",
    "            \"企业（机构）类型编码\":[\"last\"],\n",
    "            \"所在省份编码\":[\"last\"],\n",
    "            \"国民经济行业代码\":[\"last\"]\n",
    "           }\n",
    "    tmp_交易金额平均 = data[[\"客户编号\",\"折人民币交易金额\",\"企业（机构）类型编码\",\"所在省份编码\",\"国民经济行业代码\"]].groupby(\"客户编号\").agg(aggs)\n",
    "    \n",
    "    tmp_交易金额平均.columns = [\"折人民币交易金额_总额\",\"折人民币交易金额_平均值\",\"企业（机构）类型编码\",\"所在省份编码\",\"国民经济行业代码\"]\n",
    "    tmp_交易金额平均.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    \n",
    "    tmp_tmp = data.groupby(by=\"所在省份编码\").agg({\"折人民币交易金额\":[\"sum\",\"mean\"]})\n",
    "    tmp_tmp.columns = [\"省份交易金额_总额\",\"省份交易金额_平均额\"]\n",
    "    tmp_tmp.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    tmp_交易金额平均 = tmp_交易金额平均.merge(tmp_tmp, how=\"left\", on=\"所在省份编码\")\n",
    "    \n",
    "    del tmp_tmp\n",
    "    gc.collect()\n",
    "    \n",
    "    tmp_tmp = data.groupby(by=\"国民经济行业代码\").agg({\"折人民币交易金额\":[\"sum\",\"mean\"]})\n",
    "    tmp_tmp.columns = [\"行业交易金额_总额\",\"行业交易金额_平均额\"]\n",
    "    tmp_tmp.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    tmp_交易金额平均 = tmp_交易金额平均.merge(tmp_tmp, how=\"left\", on=\"国民经济行业代码\")\n",
    "    \n",
    "    del tmp_tmp\n",
    "    gc.collect()\n",
    "    \n",
    "    tmp_tmp = data.groupby(by=\"企业（机构）类型编码\").agg({\"折人民币交易金额\":[\"sum\",\"mean\"]})\n",
    "    tmp_tmp.columns = [\"企业交易金额_总额\",\"企业交易金额_平均额\"]\n",
    "    tmp_tmp.reset_index(drop=False, inplace=True)\n",
    "    \n",
    "    tmp_交易金额平均 = tmp_交易金额平均.merge(tmp_tmp, how=\"left\", on=\"企业（机构）类型编码\")\n",
    "    \n",
    "    del tmp_tmp\n",
    "    gc.collect()\n",
    "    \n",
    "    \n",
    "    tmp_交易金额平均[\"交易金额总额_比上_省份总额\"] = tmp_交易金额平均[\"折人民币交易金额_总额\"] / tmp_交易金额平均[\"省份交易金额_总额\"] * 10000\n",
    "    tmp_交易金额平均[\"交易金额平均额_比上_省份平均\"] = tmp_交易金额平均[\"折人民币交易金额_平均值\"] / tmp_交易金额平均[\"省份交易金额_平均额\"]\n",
    "    \n",
    "    tmp_交易金额平均[\"交易金额总额_比上_行业总额\"] = tmp_交易金额平均[\"折人民币交易金额_总额\"] / tmp_交易金额平均[\"行业交易金额_总额\"] * 10000\n",
    "    tmp_交易金额平均[\"交易金额平均额_比上_行业平均\"] = tmp_交易金额平均[\"折人民币交易金额_平均值\"] / tmp_交易金额平均[\"行业交易金额_平均额\"]\n",
    "    \n",
    "    tmp_交易金额平均[\"交易金额总额_比上_类型总额\"] = tmp_交易金额平均[\"折人民币交易金额_总额\"] / tmp_交易金额平均[\"企业交易金额_总额\"] * 10000\n",
    "    tmp_交易金额平均[\"交易金额平均额_比上_类型平均\"] = tmp_交易金额平均[\"折人民币交易金额_平均值\"] / tmp_交易金额平均[\"企业交易金额_平均额\"]\n",
    "    \n",
    "    tmp = tmp.drop(columns=[\"最后一笔交易日期\",\"企业（机构）类型编码\", \"所在省份编码\", \"国民经济行业代码\",])\n",
    "    tmp_交易金额平均 = tmp_交易金额平均.drop(columns=[\"企业（机构）类型编码\", \"所在省份编码\", \"国民经济行业代码\"])\n",
    "    账户余额_交易金额_平均水平 = tmp.merge(tmp_交易金额平均, how=\"left\", on=\"客户编号\")\n",
    "\n",
    "    return 账户余额_交易金额_平均水平"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "fe78a28d-ee26-4159-86db-580eb1f0faad",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-12T06:07:51.100952Z",
     "iopub.status.busy": "2024-11-12T06:07:51.100461Z",
     "iopub.status.idle": "2024-11-12T06:09:32.191695Z",
     "msg_id": "95debc69-2db9-4e8c-92db-9e4668254815",
     "shell.execute_reply": "2024-11-12T06:09:32.190892Z",
     "shell.execute_reply.started": "2024-11-12T06:07:51.100922Z"
    }
   },
   "outputs": [],
   "source": [
    "账户余额_交易金额_平均水平 = 交易金额_省份行业类型平均水平()\n",
    "\n",
    "账户余额_交易金额_平均水平.to_pickle(\"../data/B_金融性交易明细_平均特征.pkl\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1b591e73-bb0f-4dfa-b719-7406649d8041",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-30T04:37:31.697777Z",
     "iopub.status.busy": "2024-10-30T04:37:31.697245Z",
     "iopub.status.idle": "2024-10-30T04:37:31.701353Z",
     "msg_id": "73cbfe63-a197-43d9-9a5e-f0fa9afc52e8",
     "shell.execute_reply": "2024-10-30T04:37:31.700661Z",
     "shell.execute_reply.started": "2024-10-30T04:37:31.697746Z"
    }
   },
   "source": [
    "## 汇总四个版本差分特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a7827e20-d901-4a81-820a-24ac7b6297f0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-12T04:44:35.718306Z",
     "iopub.status.busy": "2024-11-12T04:44:35.717773Z",
     "iopub.status.idle": "2024-11-12T04:44:37.133285Z",
     "msg_id": "0abd824c-5876-4629-9d5c-f1baebffba75",
     "shell.execute_reply": "2024-11-12T04:44:37.132490Z",
     "shell.execute_reply.started": "2024-11-12T04:44:35.718272Z"
    }
   },
   "outputs": [],
   "source": [
    "df_1 = pd.read_pickle(\"../data/B_企业金融性交易明细_差分特征.pkl\")\n",
    "df_2 = pd.read_pickle(\"../data/B_企业金融性交易流水_简单逻辑特征.pkl\")\n",
    "df_3 = pd.read_pickle(\"../data/B_金融性交易明细_第二版差分特征_v2_1105.pkl\")\n",
    "df_4 = pd.read_pickle(\"../data/B_金融性交易明细_第三版差分特征_1030.pkl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "07a24f47-24e9-4f02-b33c-b574f007ea00",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-12T04:44:41.245511Z",
     "iopub.status.busy": "2024-11-12T04:44:41.244984Z",
     "iopub.status.idle": "2024-11-12T04:44:50.383064Z",
     "msg_id": "10caab70-68c0-4a2e-a73d-1fd877484c7a",
     "shell.execute_reply": "2024-11-12T04:44:50.382278Z",
     "shell.execute_reply.started": "2024-11-12T04:44:41.245478Z"
    }
   },
   "outputs": [],
   "source": [
    "df = df_1.merge(df_2, how=\"left\", on=\"客户编号\")\n",
    "df = df.merge(df_3, how=\"left\", on=\"客户编号\")\n",
    "df = df.merge(df_4, how=\"left\", on=\"客户编号\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "1133bf4a-0f97-4a2f-bbb1-acf2edd96b4f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-12T04:45:26.563201Z",
     "iopub.status.busy": "2024-11-12T04:45:26.562660Z",
     "iopub.status.idle": "2024-11-12T04:45:29.009960Z",
     "msg_id": "46475348-03b0-4aa3-8886-bbdc4be2d48a",
     "shell.execute_reply": "2024-11-12T04:45:29.009129Z",
     "shell.execute_reply.started": "2024-11-12T04:45:26.563166Z"
    }
   },
   "outputs": [],
   "source": [
    "df = df.merge(TARGET[[\"客户编号\", \"FLAG\"]], how=\"left\", on=\"客户编号\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "54b4c2ef-1e82-474b-9e3e-ac64daadbc91",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-12T04:45:30.790742Z",
     "iopub.status.busy": "2024-11-12T04:45:30.790229Z",
     "iopub.status.idle": "2024-11-12T04:45:30.796885Z",
     "msg_id": "c8ede806-49ff-406e-9434-4c98620d5325",
     "shell.execute_reply": "2024-11-12T04:45:30.796219Z",
     "shell.execute_reply.started": "2024-11-12T04:45:30.790710Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(59104, 3294)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "cc7405c3-cad4-4cd1-bdf7-7571a7e3b983",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-12T04:46:10.297219Z",
     "iopub.status.busy": "2024-11-12T04:46:10.296677Z",
     "iopub.status.idle": "2024-11-12T04:46:12.986419Z",
     "msg_id": "cb5d94f3-ef37-4b9b-aae1-7ae64bb082a5",
     "shell.execute_reply": "2024-11-12T04:46:12.985602Z",
     "shell.execute_reply.started": "2024-11-12T04:46:10.297186Z"
    }
   },
   "outputs": [],
   "source": [
    "df.to_pickle(\"../data/B_金融性交易明细_全部特征.pkl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "0e3ce6cf-1e99-4f4b-889c-eac00f05a5e6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-11T13:41:30.996460Z",
     "iopub.status.busy": "2024-11-11T13:41:30.996045Z",
     "iopub.status.idle": "2024-11-11T13:41:31.056044Z",
     "msg_id": "85b1b15e-10a3-4516-ac56-306ac9c793c0",
     "shell.execute_reply": "2024-11-11T13:41:31.055394Z",
     "shell.execute_reply.started": "2024-11-11T13:41:30.996430Z"
    }
   },
   "outputs": [],
   "source": [
    "feas_543 = ['合约账户余额_金融性交易_跨行0.0_按7天流水_mean_mean_差分特征_金融性交易_跨行0.0_按7天流水', '合约账户余额_金融性交易_跨行0.0_按7天流水_mean_min_差分特征_金融性交易_跨行0.0_按7天流水', '合约账户余额_金融性交易_对公_按7天流水_sum_min_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_对手方行内0_按月流水_mean_min_差分特征_金融性交易_对手方行内0_按月流水', '合约账户余额_金融性交易_跨行0.0_按月流水_mean_min_差分特征_金融性交易_跨行0.0_按月流水', '合约账户余额_金融性交易_跨行0.0_按7天流水_sum_min_差分特征_金融性交易_跨行0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_mean_-1_std_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_同名0.0_按月流水_mean_min_差分特征_金融性交易_同名0.0_按月流水', '合约账户余额_金融性交易_同名1.0_按7天流水_mean_min_差分特征_金融性交易_同名1.0_按7天流水', '合约账户余额_金融性交易_同名0.0_按7天流水_mean_mean_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_对公_按7天流水_mean_-1_mean_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_常见交易_按7天流水_mean_mean_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_转入_按月流水_count_-1_last_差分特征_金融性交易_转入_按月流水', '合约账户余额_金融性交易_少见交易_按月流水_mean_min_差分特征_金融性交易_少见交易_按月流水', '一阶差分_合约账户余额_金融性交易_对公_按7天流水_mean_-1_sum_差分特征_金融性交易_对公_按7天流水', '折人民币交易金额_金融性交易_同名1.0_按7天流水_mean_min_差分特征_金融性交易_同名1.0_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_7天流水_mean_-1_max_差分特征_金融性交易_记账方向代码164_7天流水', '合约账户余额_金融性交易_个人_按7天流水_mean_min_差分特征_金融性交易_个人_按7天流水', '合约账户余额_金融性交易_同名1.0_按月流水_mean_min_差分特征_金融性交易_同名1.0_按月流水', '合约账户余额_金融性交易_同名0.0_按7天流水_mean_min_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_对公_按月流水_count_-1_last_差分特征_金融性交易_对公_按月流水', '合约账户余额_金融性交易_对手方行内1_按月流水_mean_sum_差分特征_金融性交易_对手方行内1_按月流水', '合约账户余额_金融性交易_同名1.0_按7天流水_mean_mean_差分特征_金融性交易_同名1.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_15天流水_sum_-1_mean_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_合约账户余额_金融性交易_现转标识1_30天流水_mean_-1_mean_差分特征_金融性交易_现转标识1_30天流水', '合约账户余额_金融性交易_少见交易_按7天流水_mean_min_差分特征_金融性交易_少见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_mean_-1_last_差分特征_金融性交易_记账方向代码125_15天流水', '采样前120天内频率最高两类渠道交易笔数_占比', '一阶差分_合约账户余额_金融性交易_记账方向代码125_7天流水_mean_-1_std_差分特征_金融性交易_记账方向代码125_7天流水', '折人民币交易金额_金融性交易_记账方向代码125_7天流水_mean_min_差分特征_金融性交易_记账方向代码125_7天流水', '折人民币交易金额_金融性交易_同名0.0_按7天流水_mean_std_差分特征_金融性交易_同名0.0_按7天流水', '折人民币交易金额_金融性交易_同名1.0_按月流水_mean_min_差分特征_金融性交易_同名1.0_按月流水', '合约账户余额_金融性交易_记账方向代码164_15天流水_mean_last_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_合约账户余额_金融性交易_对公_按月流水_mean_-1_max_差分特征_金融性交易_对公_按月流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_sum_-1_last_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_常见交易_按月流水_sum_skew_差分特征_金融性交易_常见交易_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_7天流水_mean_-1_std_差分特征_金融性交易_记账方向代码164_7天流水', '折人民币交易金额_金融性交易_少见交易_按7天流水_mean_max_差分特征_金融性交易_少见交易_按7天流水', '合约账户余额_金融性交易_少见交易_按7天流水_sum_min_差分特征_金融性交易_少见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_转入_按月流水_mean_-1_last_差分特征_金融性交易_转入_按月流水', '一阶差分_折人民币交易金额_金融性交易_转入_按月流水_mean_-1_last_差分特征_金融性交易_转入_按月流水', '折人民币交易金额_金融性交易_对手方行内1_按月流水_sum_min_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按月流水_sum_-1_min_差分特征_金融性交易_同名0.0_按月流水', '折人民币交易金额_金融性交易_同名1.0_按7天流水_sum_min_差分特征_金融性交易_同名1.0_按7天流水', '合约账户余额_金融性交易_对公_按7天流水_count_get_kurt_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_跨行1.0_按7天流水_mean_min_差分特征_金融性交易_跨行1.0_按7天流水', '折人民币交易金额_金融性交易_对公_按7天流水_mean_last_差分特征_金融性交易_对公_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_30天流水_mean_-1_last_差分特征_金融性交易_记账方向代码125_30天流水', '折人民币交易金额_金融性交易_对公_按7天流水_mean_min_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_跨行1.0_按7天流水_count_std_差分特征_金融性交易_跨行1.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_15天流水_sum_-1_sum_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_30天流水_sum_-1_max_差分特征_金融性交易_记账方向代码164_30天流水', '折人民币交易金额_金融性交易_同名1.0_按7天流水_mean_mean_差分特征_金融性交易_同名1.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_常见交易_按7天流水_mean_-1_std_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_对公_按7天流水_mean_-1_std_差分特征_金融性交易_对公_按7天流水', '采样前120天客户_行内对手_折人民币交易总金额', '折人民币交易金额_金融性交易_记账方向代码125_30天流水_sum_skew_差分特征_金融性交易_记账方向代码125_30天流水', '合约账户余额_金融性交易_记账方向代码125_15天流水_sum_std_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_折人民币交易金额_金融性交易_常见交易_按7天流水_sum_-1_max_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_7天流水_mean_-1_min_差分特征_金融性交易_记账方向代码164_7天流水', '合约账户余额_金融性交易_钞汇标识0_7天流水_mean_mean_差分特征_金融性交易_钞汇标识0_7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_30天流水_mean_-1_max_差分特征_金融性交易_记账方向代码164_30天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_sum_-1_max_差分特征_金融性交易_记账方向代码125_15天流水', '折人民币交易金额_金融性交易_转入_按月流水_sum_skew_差分特征_金融性交易_转入_按月流水', '合约账户余额_金融性交易_对手方行内1_按月流水_mean_min_差分特征_金融性交易_对手方行内1_按月流水', '折人民币交易金额_金融性交易_跨行1.0_按7天流水_mean_min_差分特征_金融性交易_跨行1.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按7天流水_mean_-1_min_差分特征_金融性交易_同名0.0_按7天流水', '折人民币交易金额_金融性交易_对手方行内1_按月流水_sum_skew_差分特征_金融性交易_对手方行内1_按月流水', '合约账户余额_金融性交易_同名0.0_按7天流水_mean_get_kurt_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按月流水_sum_-1_min_差分特征_金融性交易_对公_按月流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按月流水_count_-1_std_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_30天流水_mean_-1_min_差分特征_金融性交易_记账方向代码125_30天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_15天流水_sum_-1_mean_差分特征_金融性交易_记账方向代码164_15天流水', '折人民币交易金额_金融性交易_少见交易_按月流水_mean_last_差分特征_金融性交易_少见交易_按月流水', '合约账户余额_金融性交易_同名1.0_按7天流水_sum_min_差分特征_金融性交易_同名1.0_按7天流水', '合约账户余额_金融性交易_对公_按7天流水_mean_get_kurt_差分特征_金融性交易_对公_按7天流水', '一阶差分_折人民币交易金额_金融性交易_跨行1.0_按7天流水_sum_-1_max_差分特征_金融性交易_跨行1.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按7天流水_sum_-1_get_kurt_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_15天流水_sum_-1_sum_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_折人民币交易金额_金融性交易_跨行0.0_按月流水_mean_-1_min_差分特征_金融性交易_跨行0.0_按月流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按月流水_mean_-1_max_差分特征_金融性交易_跨行0.0_按月流水', '折人民币交易金额_金融性交易_对手方行内1_按月流水_mean_mean_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_15天流水_mean_-1_last_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_7天流水_mean_-1_min_差分特征_金融性交易_记账方向代码125_7天流水', '折人民币交易金额_金融性交易_个人_按7天流水_sum_get_kurt_差分特征_金融性交易_个人_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_30天流水_mean_-1_mean_差分特征_金融性交易_记账方向代码125_30天流水', '折人民币交易金额_金融性交易_少见交易_按月流水_mean_sum_差分特征_金融性交易_少见交易_按月流水', '采样前120天内少见渠道交易笔数_占比', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_sum_-1_skew_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按7天流水_mean_-1_std_差分特征_金融性交易_跨行1.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_30天流水_sum_-1_sum_差分特征_金融性交易_记账方向代码164_30天流水', '折人民币交易金额_金融性交易_同名0.0_按月流水_mean_mean_差分特征_金融性交易_同名0.0_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_7天流水_sum_-1_last_差分特征_金融性交易_记账方向代码164_7天流水', '折人民币交易金额_金融性交易_转入_按月流水_sum_std_差分特征_金融性交易_转入_按月流水', '一阶差分_合约账户余额_金融性交易_转入_按7天流水_count_-1_min_差分特征_金融性交易_转入_按7天流水', '合约账户余额_金融性交易_同名0.0_按月流水_mean_mean_差分特征_金融性交易_同名0.0_按月流水', '折人民币交易金额_金融性交易_跨行1.0_按7天流水_sum_std_差分特征_金融性交易_跨行1.0_按7天流水', '折人民币交易金额_金融性交易_同名0.0_按7天流水_mean_min_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_15天流水_mean_-1_skew_差分特征_金融性交易_记账方向代码164_15天流水', '折人民币交易金额_金融性交易_同名0.0_按7天流水_sum_min_差分特征_金融性交易_同名0.0_按7天流水', '合约账户余额_金融性交易_对公_按7天流水_mean_mean_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_个人_按月流水_mean_min_差分特征_金融性交易_个人_按月流水', '一阶差分_合约账户余额_金融性交易_对手方行内1_按月流水_mean_-1_std_差分特征_金融性交易_对手方行内1_按月流水', '折人民币交易金额_金融性交易_个人_按月流水_mean_min_差分特征_金融性交易_个人_按月流水', '合约账户余额_金融性交易_同名0.0_按月流水_sum_skew_差分特征_金融性交易_同名0.0_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_7天流水_mean_-1_last_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_合约账户余额_金融性交易_转出_按月流水_mean_-1_max_差分特征_金融性交易_转出_按月流水', '一阶差分_折人民币交易金额_金融性交易_跨行0.0_按7天流水_sum_-1_std_差分特征_金融性交易_跨行0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_对公_按7天流水_mean_-1_get_kurt_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_记账方向代码125_7天流水_mean_mean_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按7天流水_sum_-1_std_差分特征_金融性交易_跨行0.0_按7天流水', '折人民币交易金额_金融性交易_同名1.0_按月流水_mean_sum_差分特征_金融性交易_同名1.0_按月流水', '折人民币交易金额_金融性交易_同名0.0_按7天流水_sum_last_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按月流水_mean_-1_min_差分特征_金融性交易_跨行0.0_按月流水', '折人民币交易金额_金融性交易_少见交易_按月流水_mean_max_差分特征_金融性交易_少见交易_按月流水', '合约账户余额_金融性交易_记账方向代码125_15天流水_sum_get_kurt_差分特征_金融性交易_记账方向代码125_15天流水', '折人民币交易金额_金融性交易_对手方行内0_按月流水_sum_last_差分特征_金融性交易_对手方行内0_按月流水', '折人民币交易金额_金融性交易_记账方向代码125_7天流水_mean_last_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_合约账户余额_金融性交易_常见交易_按7天流水_count_-1_max_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_现转标识1_7天流水_mean_-1_sum_差分特征_金融性交易_现转标识1_7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_15天流水_mean_-1_get_kurt_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_7天流水_sum_-1_max_差分特征_金融性交易_记账方向代码125_7天流水', '折人民币交易金额_金融性交易_少见交易_按7天流水_mean_sum_差分特征_金融性交易_少见交易_按7天流水', '折人民币交易金额_金融性交易_同名1.0_按7天流水_mean_last_差分特征_金融性交易_同名1.0_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_mean_-1_get_kurt_差分特征_金融性交易_记账方向代码125_15天流水', '折人民币交易金额_金融性交易_对公_按7天流水_sum_last_差分特征_金融性交易_对公_按7天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_sum_-1_mean_差分特征_金融性交易_同名0.0_按7天流水', '合约账户余额_金融性交易_记账方向代码125_7天流水_mean_get_kurt_差分特征_金融性交易_记账方向代码125_7天流水', '折人民币交易金额_金融性交易_跨行0.0_按月流水_sum_skew_差分特征_金融性交易_跨行0.0_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_15天流水_sum_-1_last_差分特征_金融性交易_记账方向代码164_15天流水', '折人民币交易金额_金融性交易_常见交易_按7天流水_mean_max_差分特征_金融性交易_常见交易_按7天流水', '折人民币交易金额_金融性交易_个人_按7天流水_mean_last_差分特征_金融性交易_个人_按7天流水', '一阶差分_合约账户余额_金融性交易_常见交易_按7天流水_mean_-1_min_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_sum_-1_std_差分特征_金融性交易_对公_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_7天流水_mean_-1_get_kurt_差分特征_金融性交易_记账方向代码164_7天流水', '折人民币交易金额_金融性交易_记账方向代码125_15天流水_mean_sum_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_折人民币交易金额_金融性交易_常见交易_按7天流水_mean_-1_last_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_7天流水_mean_-1_std_差分特征_金融性交易_记账方向代码125_7天流水', '合约账户余额_金融性交易_对公_按月流水_sum_min_差分特征_金融性交易_对公_按月流水', '一阶差分_合约账户余额_金融性交易_少见交易_按月流水_mean_-1_max_差分特征_金融性交易_少见交易_按月流水', '折人民币交易金额_金融性交易_常见交易_按7天流水_mean_std_差分特征_金融性交易_常见交易_按7天流水', '折人民币交易金额_金融性交易_记账方向代码125_15天流水_mean_last_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按7天流水_sum_-1_mean_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_30天流水_mean_-1_max_差分特征_金融性交易_记账方向代码125_30天流水', '折人民币交易金额_金融性交易_记账方向代码125_15天流水_sum_get_kurt_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_合约账户余额_金融性交易_转入_按7天流水_count_-1_skew_差分特征_金融性交易_转入_按7天流水', '一阶差分_合约账户余额_金融性交易_钞汇标识0_30天流水_mean_-1_sum_差分特征_金融性交易_钞汇标识0_30天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_count_-1_skew_差分特征_金融性交易_同名0.0_按7天流水', '合约账户余额_金融性交易_对手方行内0_按月流水_mean_mean_差分特征_金融性交易_对手方行内0_按月流水', '折人民币交易金额_金融性交易_对公_按7天流水_mean_mean_差分特征_金融性交易_对公_按7天流水', '一阶差分_合约账户余额_金融性交易_个人_按月流水_sum_-1_last_差分特征_金融性交易_个人_按月流水', '折人民币交易金额_金融性交易_对手方行内1_按月流水_mean_min_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_15天流水_mean_-1_last_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_15天流水_sum_-1_last_差分特征_金融性交易_记账方向代码164_15天流水', '合约账户余额_金融性交易_个人_按月流水_count_skew_差分特征_金融性交易_个人_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_7天流水_mean_-1_skew_差分特征_金融性交易_记账方向代码125_7天流水', '合约账户余额_金融性交易_个人_按7天流水_mean_mean_差分特征_金融性交易_个人_按7天流水', '合约账户余额_金融性交易_转入_按7天流水_count_get_kurt_差分特征_金融性交易_转入_按7天流水', '一阶差分_合约账户余额_金融性交易_对手方行内1_按月流水_mean_-1_mean_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按7天流水_mean_-1_sum_差分特征_金融性交易_跨行0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_跨行0.0_按7天流水_mean_-1_get_kurt_差分特征_金融性交易_跨行0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_mean_-1_last_差分特征_金融性交易_对公_按7天流水', '折人民币交易金额_金融性交易_个人_按7天流水_sum_last_差分特征_金融性交易_个人_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_15天流水_mean_-1_max_差分特征_金融性交易_记账方向代码164_15天流水', '合约账户余额_金融性交易_对公_按7天流水_mean_min_差分特征_金融性交易_对公_按7天流水', '折人民币交易金额_金融性交易_同名0.0_按月流水_sum_skew_差分特征_金融性交易_同名0.0_按月流水', '对手方行内转账金额占比', '合约账户余额_金融性交易_常见交易_按月流水_count_skew_差分特征_金融性交易_常见交易_按月流水', '折人民币交易金额_金融性交易_同名1.0_按7天流水_sum_last_差分特征_金融性交易_同名1.0_按7天流水', '折人民币交易金额_金融性交易_跨行1.0_按7天流水_sum_max_差分特征_金融性交易_跨行1.0_按7天流水', '合约账户余额_金融性交易_同名1.0_按7天流水_mean_last_差分特征_金融性交易_同名1.0_按7天流水', '折人民币交易金额_金融性交易_跨行1.0_按7天流水_mean_mean_差分特征_金融性交易_跨行1.0_按7天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按月流水_mean_-1_min_差分特征_金融性交易_同名0.0_按月流水', '合约账户余额_金融性交易_记账方向代码125_7天流水_mean_min_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_折人民币交易金额_金融性交易_个人_按7天流水_mean_-1_get_kurt_差分特征_金融性交易_个人_按7天流水', '折人民币交易金额_金融性交易_同名1.0_按月流水_mean_last_差分特征_金融性交易_同名1.0_按月流水', '折人民币交易金额_金融性交易_少见交易_按7天流水_sum_max_差分特征_金融性交易_少见交易_按7天流水', '合约账户余额_金融性交易_少见交易_按7天流水_sum_last_差分特征_金融性交易_少见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按7天流水_mean_-1_mean_差分特征_金融性交易_跨行0.0_按7天流水', '折人民币交易金额_金融性交易_少见交易_按7天流水_mean_mean_差分特征_金融性交易_少见交易_按7天流水', '折人民币交易金额_金融性交易_对手方行内0_按月流水_sum_min_差分特征_金融性交易_对手方行内0_按月流水', '折人民币交易金额_金融性交易_同名1.0_按7天流水_mean_max_差分特征_金融性交易_同名1.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_跨行1.0_按月流水_sum_-1_std_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_合约账户余额_金融性交易_转入_按7天流水_count_-1_max_差分特征_金融性交易_转入_按7天流水', '折人民币交易金额_金融性交易_少见交易_按7天流水_mean_min_差分特征_金融性交易_少见交易_按7天流水', '合约账户余额_金融性交易_记账方向代码125_7天流水_mean_max_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_折人民币交易金额_金融性交易_跨行1.0_按月流水_sum_-1_min_差分特征_金融性交易_跨行1.0_按月流水', '折人民币交易金额_金融性交易_个人_按月流水_sum_std_差分特征_金融性交易_个人_按月流水', '折人民币交易金额_金融性交易_少见交易_按月流水_sum_last_差分特征_金融性交易_少见交易_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_15天流水_mean_-1_skew_差分特征_金融性交易_记账方向代码125_15天流水', '合约账户余额_金融性交易_跨行1.0_按7天流水_sum_last_差分特征_金融性交易_跨行1.0_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_7天流水_mean_-1_sum_差分特征_金融性交易_记账方向代码164_7天流水', '合约账户余额_金融性交易_跨行0.0_按月流水_mean_max_差分特征_金融性交易_跨行0.0_按月流水', '一阶差分_合约账户余额_金融性交易_常见交易_按7天流水_mean_-1_std_差分特征_金融性交易_常见交易_按7天流水', '折人民币交易金额_金融性交易_记账方向代码164_15天流水_sum_min_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_15天流水_sum_-1_skew_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_7天流水_mean_-1_min_差分特征_金融性交易_记账方向代码164_7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按月流水_mean_-1_max_差分特征_金融性交易_对公_按月流水', '一阶差分_合约账户余额_金融性交易_对公_按月流水_mean_-1_mean_差分特征_金融性交易_对公_按月流水', '一阶差分_折人民币交易金额_金融性交易_个人_按7天流水_sum_-1_get_kurt_差分特征_金融性交易_个人_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_mean_-1_max_差分特征_金融性交易_对公_按7天流水', '一阶差分_合约账户余额_金融性交易_常见交易_按月流水_sum_-1_max_差分特征_金融性交易_常见交易_按月流水', '折人民币交易金额_金融性交易_跨行0.0_按月流水_mean_get_kurt_差分特征_金融性交易_跨行0.0_按月流水', '折人民币交易金额_金融性交易_记账方向代码164_7天流水_mean_min_差分特征_金融性交易_记账方向代码164_7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按月流水_sum_-1_max_差分特征_金融性交易_对公_按月流水', '一阶差分_合约账户余额_金融性交易_转入_按7天流水_count_-1_get_kurt_差分特征_金融性交易_转入_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_7天流水_mean_-1_sum_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_sum_-1_last_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按月流水_mean_-1_max_差分特征_金融性交易_同名0.0_按月流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按7天流水_sum_-1_sum_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_15天流水_mean_-1_std_差分特征_金融性交易_记账方向代码164_15天流水', '折人民币交易金额_金融性交易_跨行0.0_按7天流水_mean_last_差分特征_金融性交易_跨行0.0_按7天流水', '折人民币交易金额_金融性交易_跨行1.0_按7天流水_mean_last_差分特征_金融性交易_跨行1.0_按7天流水', '合约账户余额_金融性交易_对手方行内0_按月流水_mean_sum_差分特征_金融性交易_对手方行内0_按月流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按月流水_sum_-1_mean_差分特征_金融性交易_同名0.0_按月流水', '折人民币交易金额_金融性交易_记账方向代码125_7天流水_mean_get_kurt_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_合约账户余额_金融性交易_常见交易_按月流水_count_-1_last_差分特征_金融性交易_常见交易_按月流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_count_-1_get_kurt_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_count_-1_mean_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_对手方行内1_按月流水_mean_-1_max_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_sum_-1_get_kurt_差分特征_金融性交易_记账方向代码125_15天流水', '折人民币交易金额_金融性交易_对公_按7天流水_mean_sum_差分特征_金融性交易_对公_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_7天流水_sum_-1_mean_差分特征_金融性交易_记账方向代码125_7天流水', '折人民币交易金额_金融性交易_对公_按7天流水_mean_std_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_跨行0.0_按月流水_mean_std_差分特征_金融性交易_跨行0.0_按月流水', '折人民币交易金额_金融性交易_记账方向代码125_30天流水_sum_min_差分特征_金融性交易_记账方向代码125_30天流水', '一阶差分_折人民币交易金额_金融性交易_跨行0.0_按月流水_mean_-1_max_差分特征_金融性交易_跨行0.0_按月流水', '合约账户余额_金融性交易_记账方向代码164_15天流水_sum_last_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按月流水_mean_-1_mean_差分特征_金融性交易_跨行0.0_按月流水', '一阶差分_合约账户余额_金融性交易_常见交易_按7天流水_mean_-1_sum_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_7天流水_sum_-1_sum_差分特征_金融性交易_记账方向代码125_7天流水', '合约账户余额_金融性交易_记账方向代码125_7天流水_mean_sum_差分特征_金融性交易_记账方向代码125_7天流水', '折人民币交易金额_金融性交易_少见交易_按月流水_mean_min_差分特征_金融性交易_少见交易_按月流水', '合约账户余额_金融性交易_少见交易_按月流水_mean_mean_差分特征_金融性交易_少见交易_按月流水', '折人民币交易金额_金融性交易_记账方向代码164_7天流水_sum_last_差分特征_金融性交易_记账方向代码164_7天流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按月流水_count_-1_last_差分特征_金融性交易_跨行1.0_按月流水', '合约账户余额_金融性交易_对公_按月流水_count_get_kurt_差分特征_金融性交易_对公_按月流水', '一阶差分_折人民币交易金额_金融性交易_常见交易_按7天流水_sum_-1_std_差分特征_金融性交易_常见交易_按7天流水', '折人民币交易金额_金融性交易_少见交易_按月流水_sum_mean_差分特征_金融性交易_少见交易_按月流水', '折人民币交易金额_金融性交易_跨行0.0_按月流水_sum_min_差分特征_金融性交易_跨行0.0_按月流水', '一阶差分_折人民币交易金额_金融性交易_对公_按月流水_sum_-1_last_差分特征_金融性交易_对公_按月流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_mean_-1_min_差分特征_金融性交易_同名0.0_按7天流水', '折人民币交易金额_金融性交易_少见交易_按7天流水_mean_last_差分特征_金融性交易_少见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_钞汇标识0_15天流水_mean_-1_last_差分特征_金融性交易_钞汇标识0_15天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_7天流水_mean_-1_min_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按月流水_sum_-1_max_差分特征_金融性交易_同名0.0_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_15天流水_sum_-1_std_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_mean_-1_min_差分特征_金融性交易_对公_按7天流水', '折人民币交易金额_金融性交易_对公_按7天流水_sum_std_差分特征_金融性交易_对公_按7天流水', '一阶差分_合约账户余额_金融性交易_常见交易_按7天流水_mean_-1_mean_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_15天流水_sum_-1_min_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_折人民币交易金额_金融性交易_跨行0.0_按月流水_sum_-1_min_差分特征_金融性交易_跨行0.0_按月流水', '折人民币交易金额_金融性交易_少见交易_按月流水_mean_mean_差分特征_金融性交易_少见交易_按月流水', '一阶差分_折人民币交易金额_金融性交易_个人_按7天流水_mean_-1_std_差分特征_金融性交易_个人_按7天流水', '合约账户余额_金融性交易_少见交易_按7天流水_mean_mean_差分特征_金融性交易_少见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_15天流水_mean_-1_min_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_合约账户余额_金融性交易_对公_按7天流水_mean_-1_max_差分特征_金融性交易_对公_按7天流水', '一阶差分_折人民币交易金额_金融性交易_个人_按月流水_sum_-1_std_差分特征_金融性交易_个人_按月流水', '合约账户余额_金融性交易_按月流水_sum_skew_差分特征_金融性交易_按月流水', '一阶差分_折人民币交易金额_金融性交易_转入_按月流水_sum_-1_max_差分特征_金融性交易_转入_按月流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按月流水_mean_-1_last_差分特征_金融性交易_同名0.0_按月流水', '折人民币交易金额_金融性交易_转出_按月流水_sum_last_差分特征_金融性交易_转出_按月流水', '一阶差分_折人民币交易金额_金融性交易_常见交易_按7天流水_mean_-1_max_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_30天流水_mean_-1_sum_差分特征_金融性交易_记账方向代码125_30天流水', '一阶差分_合约账户余额_金融性交易_个人_按月流水_sum_-1_sum_差分特征_金融性交易_个人_按月流水', '行内_行外转账金额占比', '折人民币交易金额_金融性交易_跨行1.0_按月流水_mean_min_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_合约账户余额_金融性交易_个人_按7天流水_mean_-1_get_kurt_差分特征_金融性交易_个人_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_7天流水_mean_-1_max_差分特征_金融性交易_记账方向代码125_7天流水', '合约账户余额_金融性交易_转入_按月流水_count_std_差分特征_金融性交易_转入_按月流水', '折人民币交易金额_金融性交易_个人_按月流水_sum_skew_差分特征_金融性交易_个人_按月流水', '合约账户余额_金融性交易_对手方行内0_按月流水_sum_min_差分特征_金融性交易_对手方行内0_按月流水', '折人民币交易金额_金融性交易_记账方向代码125_15天流水_sum_skew_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_sum_-1_get_kurt_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_mean_-1_mean_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_合约账户余额_金融性交易_对手方行内1_按月流水_mean_-1_sum_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按7天流水_sum_-1_get_kurt_差分特征_金融性交易_跨行1.0_按7天流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按月流水_sum_-1_std_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按7天流水_mean_-1_get_kurt_差分特征_金融性交易_同名0.0_按7天流水', '合约账户余额_金融性交易_记账方向代码164_30天流水_mean_sum_差分特征_金融性交易_记账方向代码164_30天流水', '合约账户余额_金融性交易_同名1.0_按月流水_sum_min_差分特征_金融性交易_同名1.0_按月流水', '折人民币交易金额_金融性交易_常见交易_按7天流水_mean_min_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_15天流水_mean_-1_max_差分特征_金融性交易_记账方向代码125_15天流水', '折人民币交易金额_金融性交易_记账方向代码125_15天流水_mean_get_kurt_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_7天流水_mean_-1_max_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按7天流水_count_-1_max_差分特征_金融性交易_跨行1.0_按7天流水', '合约账户余额_金融性交易_同名0.0_按7天流水_sum_last_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_7天流水_sum_-1_sum_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_7天流水_sum_-1_std_差分特征_金融性交易_记账方向代码125_7天流水', '合约账户余额_金融性交易_记账方向代码125_30天流水_sum_min_差分特征_金融性交易_记账方向代码125_30天流水', '折人民币交易金额_金融性交易_少见交易_按月流水_sum_max_差分特征_金融性交易_少见交易_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_7天流水_mean_-1_last_差分特征_金融性交易_记账方向代码164_7天流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按月流水_mean_-1_last_差分特征_金融性交易_跨行0.0_按月流水', '合约账户余额_金融性交易_个人_按7天流水_sum_min_差分特征_金融性交易_个人_按7天流水', '折人民币交易金额_金融性交易_对手方行内1_按月流水_mean_sum_差分特征_金融性交易_对手方行内1_按月流水', '合约账户余额_金融性交易_跨行1.0_按月流水_count_std_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_mean_-1_std_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_count_-1_sum_差分特征_金融性交易_同名0.0_按7天流水', '折人民币交易金额_金融性交易_个人_按7天流水_mean_min_差分特征_金融性交易_个人_按7天流水', '合约账户余额_金融性交易_跨行1.0_按7天流水_mean_last_差分特征_金融性交易_跨行1.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_跨行1.0_按7天流水_mean_-1_std_差分特征_金融性交易_跨行1.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_30天流水_mean_-1_mean_差分特征_金融性交易_记账方向代码125_30天流水', '合约账户余额_金融性交易_记账方向代码125_30天流水_mean_mean_差分特征_金融性交易_记账方向代码125_30天流水', '一阶差分_合约账户余额_金融性交易_转出_按月流水_mean_-1_min_差分特征_金融性交易_转出_按月流水', '合约账户余额_金融性交易_转入_按月流水_count_skew_差分特征_金融性交易_转入_按月流水', '折人民币交易金额_金融性交易_对公_按7天流水_sum_min_差分特征_金融性交易_对公_按7天流水', '转出金额占比', '合约账户余额_金融性交易_记账方向代码125_15天流水_mean_max_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按7天流水_mean_-1_get_kurt_差分特征_金融性交易_跨行1.0_按7天流水', '合约账户余额_金融性交易_同名0.0_按7天流水_mean_last_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_mean_-1_min_差分特征_金融性交易_记账方向代码125_15天流水', '折人民币交易金额_金融性交易_少见交易_按7天流水_sum_mean_差分特征_金融性交易_少见交易_按7天流水', '合约账户余额_金融性交易_跨行1.0_按月流水_mean_min_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_合约账户余额_金融性交易_同名1.0_按7天流水_mean_-1_sum_差分特征_金融性交易_同名1.0_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_15天流水_mean_-1_last_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_sum_-1_min_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_30天流水_mean_-1_mean_差分特征_金融性交易_记账方向代码164_30天流水', '折人民币交易金额_金融性交易_常见交易_按7天流水_sum_min_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按月流水_mean_-1_std_差分特征_金融性交易_对公_按月流水', '合约账户余额_金融性交易_跨行0.0_按月流水_sum_skew_差分特征_金融性交易_跨行0.0_按月流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按月流水_mean_-1_mean_差分特征_金融性交易_同名0.0_按月流水', '采样前120天客户_行内_折人民币交易总金额', '一阶差分_折人民币交易金额_金融性交易_转出_按月流水_sum_-1_min_差分特征_金融性交易_转出_按月流水', '对公交易金额占比', '一阶差分_折人民币交易金额_金融性交易_跨行1.0_按7天流水_sum_-1_sum_差分特征_金融性交易_跨行1.0_按7天流水', '折人民币交易金额_金融性交易_跨行0.0_按月流水_mean_sum_差分特征_金融性交易_跨行0.0_按月流水', '折人民币交易金额_金融性交易_同名0.0_按7天流水_mean_last_差分特征_金融性交易_同名0.0_按7天流水', '合约账户余额_金融性交易_转入_按月流水_mean_sum_差分特征_金融性交易_转入_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_mean_-1_max_差分特征_金融性交易_记账方向代码125_15天流水', '折人民币交易金额_金融性交易_记账方向代码164_7天流水_mean_last_差分特征_金融性交易_记账方向代码164_7天流水', '折人民币交易金额_金融性交易_对公_按7天流水_sum_mean_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_个人_按7天流水_count_skew_差分特征_金融性交易_个人_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_mean_-1_sum_差分特征_金融性交易_对公_按7天流水', '一阶差分_合约账户余额_金融性交易_现转标识1_7天流水_mean_-1_mean_差分特征_金融性交易_现转标识1_7天流水', '一阶差分_合约账户余额_金融性交易_转入_按月流水_sum_-1_min_差分特征_金融性交易_转入_按月流水', '折人民币交易金额_金融性交易_现转标识1_7天流水_sum_min_差分特征_金融性交易_现转标识1_7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_7天流水_sum_-1_max_差分特征_金融性交易_记账方向代码164_7天流水', '折人民币交易金额_金融性交易_同名1.0_按月流水_mean_max_差分特征_金融性交易_同名1.0_按月流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按7天流水_count_-1_std_差分特征_金融性交易_跨行1.0_按7天流水', '合约账户余额_金融性交易_按月流水_count_get_kurt_差分特征_金融性交易_按月流水', '合约账户余额_金融性交易_对公_按月流水_mean_std_差分特征_金融性交易_对公_按月流水', '一阶差分_折人民币交易金额_金融性交易_同名1.0_按月流水_sum_-1_max_差分特征_金融性交易_同名1.0_按月流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_mean_-1_get_kurt_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_常见交易_按7天流水_sum_min_差分特征_金融性交易_常见交易_按7天流水', '折人民币交易金额_金融性交易_对手方行内0_按月流水_mean_mean_差分特征_金融性交易_对手方行内0_按月流水', '折人民币交易金额_金融性交易_对公_按月流水_sum_min_差分特征_金融性交易_对公_按月流水', '一阶差分_折人民币交易金额_金融性交易_常见交易_按7天流水_sum_-1_min_差分特征_金融性交易_常见交易_按7天流水', '合约账户余额_金融性交易_跨行0.0_按7天流水_mean_sum_差分特征_金融性交易_跨行0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_对公_按月流水_mean_-1_std_差分特征_金融性交易_对公_按月流水', '折人民币交易金额_金融性交易_记账方向代码164_15天流水_mean_min_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_合约账户余额_金融性交易_转入_按月流水_count_-1_std_差分特征_金融性交易_转入_按月流水', '一阶差分_合约账户余额_金融性交易_常见交易_按7天流水_sum_-1_max_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_跨行0.0_按7天流水_mean_-1_sum_差分特征_金融性交易_跨行0.0_按7天流水', '折人民币交易金额_金融性交易_对公_按月流水_sum_sum_差分特征_金融性交易_对公_按月流水', '折人民币交易金额_金融性交易_对公_按月流水_sum_skew_差分特征_金融性交易_对公_按月流水', '合约账户余额_金融性交易_对手方行内0_按月流水_sum_last_差分特征_金融性交易_对手方行内0_按月流水', '折人民币交易金额_金融性交易_常见交易_按月流水_sum_skew_差分特征_金融性交易_常见交易_按月流水', '折人民币交易金额_金融性交易_同名0.0_按7天流水_sum_std_差分特征_金融性交易_同名0.0_按7天流水', '折人民币交易金额_金融性交易_现转标识1_15天流水_mean_min_差分特征_金融性交易_现转标识1_15天流水', '一阶差分_折人民币交易金额_金融性交易_常见交易_按7天流水_sum_-1_last_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按月流水_mean_-1_last_差分特征_金融性交易_对公_按月流水', '一阶差分_合约账户余额_金融性交易_转入_按月流水_count_-1_min_差分特征_金融性交易_转入_按月流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按7天流水_sum_-1_last_差分特征_金融性交易_同名0.0_按7天流水', '合约账户余额_金融性交易_对手方行内1_按月流水_sum_skew_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_合约账户余额_金融性交易_对公_按7天流水_sum_-1_last_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_同名0.0_按月流水_mean_std_差分特征_金融性交易_同名0.0_按月流水', '合约账户余额_金融性交易_转出_按月流水_count_skew_差分特征_金融性交易_转出_按月流水', '合约账户余额_金融性交易_转入_按7天流水_count_skew_差分特征_金融性交易_转入_按7天流水', '折人民币交易金额_金融性交易_记账方向代码164_15天流水_sum_std_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_合约账户余额_金融性交易_同名1.0_按7天流水_mean_-1_min_差分特征_金融性交易_同名1.0_按7天流水', '合约账户余额_金融性交易_对手方行内1_按月流水_mean_mean_差分特征_金融性交易_对手方行内1_按月流水', '合约账户余额_金融性交易_记账方向代码164_15天流水_mean_min_差分特征_金融性交易_记账方向代码164_15天流水', '合约账户余额_金融性交易_记账方向代码125_7天流水_mean_last_差分特征_金融性交易_记账方向代码125_7天流水', '折人民币交易金额_金融性交易_转出_按月流水_sum_skew_差分特征_金融性交易_转出_按月流水', '一阶差分_合约账户余额_金融性交易_现转标识1_7天流水_mean_-1_max_差分特征_金融性交易_现转标识1_7天流水', '一阶差分_折人民币交易金额_金融性交易_15天流水_mean_-1_get_kurt_差分特征_金融性交易_15天流水', '一阶差分_合约账户余额_金融性交易_对公_按月流水_mean_-1_sum_差分特征_金融性交易_对公_按月流水', '合约账户余额_金融性交易_记账方向代码125_15天流水_mean_get_kurt_差分特征_金融性交易_记账方向代码125_15天流水', '合约账户余额_金融性交易_对公_按月流水_sum_skew_差分特征_金融性交易_对公_按月流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按月流水_sum_-1_min_差分特征_金融性交易_跨行1.0_按月流水', '折人民币交易金额_金融性交易_同名0.0_按月流水_sum_last_差分特征_金融性交易_同名0.0_按月流水', '一阶差分_合约账户余额_金融性交易_常见交易_按7天流水_mean_-1_max_差分特征_金融性交易_常见交易_按7天流水', '折人民币交易金额_金融性交易_同名1.0_按月流水_sum_min_差分特征_金融性交易_同名1.0_按月流水', '一阶差分_折人民币交易金额_金融性交易_对手方行内0_按月流水_sum_-1_max_差分特征_金融性交易_对手方行内0_按月流水', '折人民币交易金额_金融性交易_记账方向代码125_7天流水_sum_min_差分特征_金融性交易_记账方向代码125_7天流水', '折人民币交易金额_金融性交易_对手方行内1_按月流水_mean_max_差分特征_金融性交易_对手方行内1_按月流水', '折人民币交易金额_金融性交易_个人_按7天流水_mean_max_差分特征_金融性交易_个人_按7天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_sum_-1_min_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_折人民币交易金额_金融性交易_对手方行内1_按月流水_mean_-1_last_差分特征_金融性交易_对手方行内1_按月流水', '合约账户余额_金融性交易_个人_按月流水_mean_mean_差分特征_金融性交易_个人_按月流水', '折人民币交易金额_金融性交易_按月流水_sum_min_差分特征_金融性交易_按月流水', '一阶差分_合约账户余额_金融性交易_个人_按7天流水_mean_-1_std_差分特征_金融性交易_个人_按7天流水', '一阶差分_折人民币交易金额_金融性交易_常见交易_按7天流水_mean_-1_min_差分特征_金融性交易_常见交易_按7天流水', '折人民币交易金额_金融性交易_记账方向代码125_30天流水_mean_last_差分特征_金融性交易_记账方向代码125_30天流水', '合约账户余额_金融性交易_记账方向代码164_30天流水_mean_min_差分特征_金融性交易_记账方向代码164_30天流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按7天流水_mean_-1_min_差分特征_金融性交易_跨行1.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_跨行1.0_按7天流水_sum_-1_get_kurt_差分特征_金融性交易_跨行1.0_按7天流水', '合约账户余额_金融性交易_同名0.0_按7天流水_sum_get_kurt_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_跨行0.0_按7天流水_mean_-1_max_差分特征_金融性交易_跨行0.0_按7天流水', '合约账户余额_金融性交易_对公_按月流水_mean_min_差分特征_金融性交易_对公_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_7天流水_mean_-1_mean_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_折人民币交易金额_金融性交易_少见交易_按7天流水_mean_-1_std_差分特征_金融性交易_少见交易_按7天流水', '折人民币交易金额_金融性交易_转出_按月流水_mean_last_差分特征_金融性交易_转出_按月流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按7天流水_mean_-1_last_差分特征_金融性交易_跨行0.0_按7天流水', '合约账户余额_金融性交易_常见交易_按7天流水_mean_std_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按7天流水_mean_-1_max_差分特征_金融性交易_同名0.0_按7天流水', '合约账户余额_金融性交易_记账方向代码164_7天流水_mean_mean_差分特征_金融性交易_记账方向代码164_7天流水', '一阶差分_折人民币交易金额_金融性交易_钞汇标识0_15天流水_mean_-1_skew_差分特征_金融性交易_钞汇标识0_15天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按月流水_count_-1_skew_差分特征_金融性交易_同名0.0_按月流水', '合约账户余额_金融性交易_少见交易_按月流水_mean_sum_差分特征_金融性交易_少见交易_按月流水', '折人民币交易金额_金融性交易_同名1.0_按7天流水_sum_mean_差分特征_金融性交易_同名1.0_按7天流水', '合约账户余额_金融性交易_按月流水_mean_min_差分特征_金融性交易_按月流水', '合约账户余额_金融性交易_同名1.0_按7天流水_sum_last_差分特征_金融性交易_同名1.0_按7天流水', '合约账户余额_金融性交易_记账方向代码125_15天流水_mean_sum_差分特征_金融性交易_记账方向代码125_15天流水', '折人民币交易金额_金融性交易_同名1.0_按月流水_sum_last_差分特征_金融性交易_同名1.0_按月流水', '合约账户余额_金融性交易_少见交易_按月流水_sum_min_差分特征_金融性交易_少见交易_按月流水', '合约账户余额_金融性交易_30天流水_sum_min_差分特征_金融性交易_30天流水', '折人民币交易金额_金融性交易_跨行1.0_按7天流水_mean_max_差分特征_金融性交易_跨行1.0_按7天流水', '采样前30天内金融性交易笔数_占比', '一阶差分_折人民币交易金额_金融性交易_个人_按7天流水_sum_-1_max_差分特征_金融性交易_个人_按7天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_mean_-1_get_kurt_差分特征_金融性交易_同名0.0_按7天流水', '合约账户余额_金融性交易_对手方行内0_按月流水_count_mean_差分特征_金融性交易_对手方行内0_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_7天流水_sum_-1_last_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_折人民币交易金额_金融性交易_跨行0.0_按月流水_sum_-1_last_差分特征_金融性交易_跨行0.0_按月流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按月流水_sum_-1_last_差分特征_金融性交易_跨行0.0_按月流水', '折人民币交易金额_金融性交易_记账方向代码164_30天流水_mean_last_差分特征_金融性交易_记账方向代码164_30天流水', '一阶差分_合约账户余额_金融性交易_对手方行内0_按月流水_mean_-1_sum_差分特征_金融性交易_对手方行内0_按月流水', '折人民币交易金额_金融性交易_对公_按月流水_mean_std_差分特征_金融性交易_对公_按月流水', '合约账户余额_金融性交易_对手方行内1_按月流水_count_get_kurt_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_折人民币交易金额_金融性交易_钞汇标识0_7天流水_mean_-1_get_kurt_差分特征_金融性交易_钞汇标识0_7天流水', '折人民币交易金额_金融性交易_对公_按月流水_mean_mean_差分特征_金融性交易_对公_按月流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按7天流水_mean_-1_max_差分特征_金融性交易_跨行0.0_按7天流水', '合约账户余额_金融性交易_记账方向代码125_7天流水_sum_last_差分特征_金融性交易_记账方向代码125_7天流水', '合约账户余额_金融性交易_现转标识1_15天流水_sum_get_kurt_差分特征_金融性交易_现转标识1_15天流水', '一阶差分_合约账户余额_金融性交易_个人_按7天流水_count_-1_max_差分特征_金融性交易_个人_按7天流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按月流水_sum_-1_mean_差分特征_金融性交易_跨行0.0_按月流水', '合约账户余额_金融性交易_记账方向代码125_7天流水_sum_min_差分特征_金融性交易_记账方向代码125_7天流水', '一阶差分_折人民币交易金额_金融性交易_跨行0.0_按7天流水_sum_-1_last_差分特征_金融性交易_跨行0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_对手方行内0_按月流水_sum_-1_last_差分特征_金融性交易_对手方行内0_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_30天流水_mean_-1_last_差分特征_金融性交易_记账方向代码125_30天流水', '折人民币交易金额_金融性交易_跨行1.0_按月流水_sum_std_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按7天流水_sum_-1_sum_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_转入_按月流水_mean_-1_min_差分特征_金融性交易_转入_按月流水', '折人民币交易金额_金融性交易_跨行1.0_按月流水_mean_last_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按月流水_sum_-1_mean_差分特征_金融性交易_同名0.0_按月流水', '折人民币交易金额_金融性交易_跨行1.0_按月流水_mean_sum_差分特征_金融性交易_跨行1.0_按月流水', '合约账户余额_金融性交易_对手方行内0_按月流水_mean_max_差分特征_金融性交易_对手方行内0_按月流水', '一阶差分_合约账户余额_金融性交易_对公_按月流水_mean_-1_min_差分特征_金融性交易_对公_按月流水', '合约账户余额_金融性交易_跨行0.0_按7天流水_count_std_差分特征_金融性交易_跨行0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_对手方行内1_按月流水_mean_-1_min_差分特征_金融性交易_对手方行内1_按月流水', '合约账户余额_金融性交易_记账方向代码164_30天流水_sum_min_差分特征_金融性交易_记账方向代码164_30天流水', '合约账户余额_金融性交易_记账方向代码125_7天流水_sum_get_kurt_差分特征_金融性交易_记账方向代码125_7天流水', '合约账户余额_金融性交易_少见交易_按7天流水_sum_max_差分特征_金融性交易_少见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_sum_-1_mean_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_少见交易_按月流水_sum_last_差分特征_金融性交易_少见交易_按月流水', '折人民币交易金额_金融性交易_常见交易_按7天流水_sum_last_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对手方行内1_按月流水_mean_-1_max_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_15天流水_sum_-1_get_kurt_差分特征_金融性交易_记账方向代码125_15天流水', '折人民币交易金额_金融性交易_对手方行内0_按月流水_mean_last_差分特征_金融性交易_对手方行内0_按月流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_sum_-1_sum_差分特征_金融性交易_对公_按7天流水', '一阶差分_折人民币交易金额_金融性交易_转出_按月流水_sum_-1_max_差分特征_金融性交易_转出_按月流水', '一阶差分_合约账户余额_金融性交易_少见交易_按7天流水_sum_-1_max_差分特征_金融性交易_少见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_对手方行内1_按月流水_mean_-1_last_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按月流水_mean_-1_mean_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_折人民币交易金额_金融性交易_15天流水_mean_-1_last_差分特征_金融性交易_15天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按月流水_sum_-1_std_差分特征_金融性交易_对公_按月流水', '一阶差分_合约账户余额_金融性交易_常见交易_按7天流水_sum_-1_mean_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_15天流水_mean_-1_sum_差分特征_金融性交易_记账方向代码125_15天流水', '合约账户余额_金融性交易_对手方行内1_按月流水_count_skew_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_折人民币交易金额_金融性交易_对手方行内0_按月流水_sum_-1_min_差分特征_金融性交易_对手方行内0_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_30天流水_mean_-1_std_差分特征_金融性交易_记账方向代码164_30天流水', '折人民币交易金额_金融性交易_记账方向代码125_15天流水_mean_min_差分特征_金融性交易_记账方向代码125_15天流水', '行内转账金额占比', '合约账户余额_金融性交易_对手方行内1_按月流水_sum_last_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_折人民币交易金额_金融性交易_跨行0.0_按月流水_mean_-1_mean_差分特征_金融性交易_跨行0.0_按月流水', '折人民币交易金额_金融性交易_跨行1.0_按月流水_sum_skew_差分特征_金融性交易_跨行1.0_按月流水', '合约账户余额_金融性交易_常见交易_按7天流水_count_max_差分特征_金融性交易_常见交易_按7天流水', '合约账户余额_金融性交易_记账方向代码125_15天流水_sum_min_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_折人民币交易金额_金融性交易_跨行1.0_按月流水_sum_-1_max_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_合约账户余额_金融性交易_对公_按7天流水_sum_-1_get_kurt_差分特征_金融性交易_对公_按7天流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按月流水_sum_-1_max_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_合约账户余额_金融性交易_钞汇标识0_7天流水_mean_-1_std_差分特征_金融性交易_钞汇标识0_7天流水', '折人民币交易金额_金融性交易_记账方向代码125_15天流水_sum_last_差分特征_金融性交易_记账方向代码125_15天流水', '合约账户余额_金融性交易_记账方向代码164_30天流水_sum_std_差分特征_金融性交易_记账方向代码164_30天流水', '折人民币交易金额_金融性交易_个人_按月流水_mean_std_差分特征_金融性交易_个人_按月流水', '折人民币交易金额_金融性交易_对手方行内1_按月流水_mean_std_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_30天流水_sum_-1_last_差分特征_金融性交易_记账方向代码125_30天流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按7天流水_sum_-1_sum_差分特征_金融性交易_跨行1.0_按7天流水', '折人民币交易金额_金融性交易_跨行1.0_按7天流水_sum_last_差分特征_金融性交易_跨行1.0_按7天流水', '合约账户余额_金融性交易_个人_按月流水_count_max_差分特征_金融性交易_个人_按月流水', '折人民币交易金额_金融性交易_同名1.0_按月流水_sum_max_差分特征_金融性交易_同名1.0_按月流水', '采样前120天_同名转账笔数占比', '合约账户余额_金融性交易_转出_按月流水_mean_last_差分特征_金融性交易_转出_按月流水', '合约账户余额_金融性交易_跨行1.0_按月流水_count_skew_差分特征_金融性交易_跨行1.0_按月流水', '一阶差分_折人民币交易金额_金融性交易_转入_按月流水_mean_-1_max_差分特征_金融性交易_转入_按月流水', '合约账户余额_金融性交易_转出_按月流水_mean_min_差分特征_金融性交易_转出_按月流水', '一阶差分_折人民币交易金额_金融性交易_个人_按7天流水_mean_-1_min_差分特征_金融性交易_个人_按7天流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按月流水_sum_-1_min_差分特征_金融性交易_同名0.0_按月流水', '合约账户余额_金融性交易_按月流水_count_skew_差分特征_金融性交易_按月流水', '合约账户余额_金融性交易_记账方向代码164_15天流水_mean_sum_差分特征_金融性交易_记账方向代码164_15天流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_sum_-1_get_kurt_差分特征_金融性交易_对公_按7天流水', '合约账户余额_金融性交易_记账方向代码125_15天流水_mean_last_差分特征_金融性交易_记账方向代码125_15天流水', '折人民币交易金额_金融性交易_同名0.0_按月流水_mean_max_差分特征_金融性交易_同名0.0_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_30天流水_sum_-1_max_差分特征_金融性交易_记账方向代码164_30天流水', '一阶差分_合约账户余额_金融性交易_个人_按月流水_mean_-1_std_差分特征_金融性交易_个人_按月流水', '一阶差分_合约账户余额_金融性交易_同名0.0_按月流水_count_-1_min_差分特征_金融性交易_同名0.0_按月流水', '合约账户余额_金融性交易_跨行1.0_按月流水_mean_sum_差分特征_金融性交易_跨行1.0_按月流水', '合约账户余额_金融性交易_同名0.0_按月流水_count_get_kurt_差分特征_金融性交易_同名0.0_按月流水', '一阶差分_合约账户余额_金融性交易_现转标识1_30天流水_sum_-1_max_差分特征_金融性交易_现转标识1_30天流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按月流水_mean_-1_sum_差分特征_金融性交易_跨行0.0_按月流水', '一阶差分_合约账户余额_金融性交易_对公_按7天流水_sum_-1_sum_差分特征_金融性交易_对公_按7天流水', '一阶差分_合约账户余额_金融性交易_跨行1.0_按月流水_sum_-1_mean_差分特征_金融性交易_跨行1.0_按月流水', '折人民币交易金额_金融性交易_跨行0.0_按7天流水_mean_mean_差分特征_金融性交易_跨行0.0_按7天流水', '折人民币交易金额_金融性交易_少见交易_按月流水_sum_min_差分特征_金融性交易_少见交易_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_15天流水_sum_-1_sum_差分特征_金融性交易_记账方向代码125_15天流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码164_30天流水_sum_-1_min_差分特征_金融性交易_记账方向代码164_30天流水', '一阶差分_折人民币交易金额_金融性交易_现转标识1_30天流水_mean_-1_last_差分特征_金融性交易_现转标识1_30天流水', '合约账户余额_金融性交易_同名0.0_按月流水_mean_last_差分特征_金融性交易_同名0.0_按月流水', '合约账户余额_金融性交易_少见交易_按月流水_mean_max_差分特征_金融性交易_少见交易_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_7天流水_mean_-1_mean_差分特征_金融性交易_记账方向代码164_7天流水', '一阶差分_合约账户余额_金融性交易_个人_按月流水_mean_-1_min_差分特征_金融性交易_个人_按月流水', '折人民币交易金额_金融性交易_常见交易_按7天流水_mean_last_差分特征_金融性交易_常见交易_按7天流水', '一阶差分_合约账户余额_金融性交易_跨行0.0_按7天流水_mean_-1_min_差分特征_金融性交易_跨行0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_同名0.0_按7天流水_sum_-1_max_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_合约账户余额_金融性交易_转出_按月流水_mean_-1_sum_差分特征_金融性交易_转出_按月流水', '一阶差分_合约账户余额_金融性交易_记账方向代码164_30天流水_sum_-1_std_差分特征_金融性交易_记账方向代码164_30天流水', '一阶差分_合约账户余额_金融性交易_记账方向代码125_30天流水_sum_-1_min_差分特征_金融性交易_记账方向代码125_30天流水', '采样前120天客户_跨行_折人民币交易总金额', '折人民币交易金额_金融性交易_钞汇标识0_7天流水_mean_std_差分特征_金融性交易_钞汇标识0_7天流水', '折人民币交易金额_金融性交易_按月流水_sum_skew_差分特征_金融性交易_按月流水', '合约账户余额_金融性交易_少见交易_按月流水_mean_last_差分特征_金融性交易_少见交易_按月流水', '一阶差分_折人民币交易金额_金融性交易_记账方向代码125_15天流水_mean_-1_min_差分特征_金融性交易_记账方向代码125_15天流水', '合约账户余额_金融性交易_同名0.0_按7天流水_count_get_kurt_差分特征_金融性交易_同名0.0_按7天流水', '一阶差分_折人民币交易金额_金融性交易_对手方行内1_按月流水_mean_-1_std_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_折人民币交易金额_金融性交易_同名1.0_按月流水_sum_-1_mean_差分特征_金融性交易_同名1.0_按月流水', '折人民币交易金额_金融性交易_记账方向代码125_7天流水_mean_sum_差分特征_金融性交易_记账方向代码125_7天流水', '合约账户余额_金融性交易_对手方行内0_按月流水_mean_std_差分特征_金融性交易_对手方行内0_按月流水', '一阶差分_折人民币交易金额_金融性交易_对公_按7天流水_sum_-1_min_差分特征_金融性交易_对公_按7天流水', '一阶差分_合约账户余额_金融性交易_对手方行内1_按月流水_sum_-1_std_差分特征_金融性交易_对手方行内1_按月流水', '一阶差分_合约账户余额_金融性交易_对公_按月流水_sum_-1_max_差分特征_金融性交易_对公_按月流水', '折人民币交易金额_金融性交易_记账方向代码164_30天流水_sum_last_差分特征_金融性交易_记账方向代码164_30天流水', '一阶差分_折人民币交易金额_金融性交易_常见交易_按月流水_mean_-1_max_差分特征_金融性交易_常见交易_按月流水', '一阶差分_合约账户余额_金融性交易_现转标识1_7天流水_sum_-1_sum_差分特征_金融性交易_现转标识1_7天流水',]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "5b2e9d8a-2495-4a84-8ff7-8419f93c04bf",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-11T13:41:35.386049Z",
     "iopub.status.busy": "2024-11-11T13:41:35.385563Z",
     "iopub.status.idle": "2024-11-11T13:41:38.803810Z",
     "msg_id": "272719df-7343-4a6d-b5b2-060530497c46",
     "shell.execute_reply": "2024-11-11T13:41:38.803052Z",
     "shell.execute_reply.started": "2024-11-11T13:41:35.386019Z"
    }
   },
   "outputs": [],
   "source": [
    "df[[\"客户编号\"] +feas_543].to_pickle(\"../data/B_金融性交易明细_新版本全部特征相关性剔除后保留543.pkl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "848fd532-5873-46c1-9d17-9cf0216f37e5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-11T13:42:26.984768Z",
     "iopub.status.busy": "2024-11-11T13:42:26.984344Z",
     "iopub.status.idle": "2024-11-11T13:42:27.715995Z",
     "msg_id": "bab9a916-169d-4114-a7b5-273ec84aaf8b",
     "shell.execute_reply": "2024-11-11T13:42:27.715343Z",
     "shell.execute_reply.started": "2024-11-11T13:42:26.984739Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# df = pd.read_pickle(\"../data/B_金融性交易明细_新版本全部特征相关性剔除后保留543.pkl\")\n",
    "# o_df = pd.read_pickle(\"/home/mole/work/xukunzhou/B榜/20241105/data/金融性交易明细_新版本全部特征相关性剔除后保留543.pkl\")\n",
    "# df.equals(o_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "de771ac8-023f-4916-9065-b5a8660caf4c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "14d9a89e-55cc-4c0d-b3cc-9736f60f4733",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.18"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
